Encyclopedia Foundation Foundation Primitive Recognition Calculus Grow Signed Orbit Nonneg Flag Mul Of O
ARTICLE 2 claims 2 theorems
Foundation Primitive Recognition Calculus Grow Signed Orbit Nonneg Flag Mul Of O
A machine-checked theorem shows that multiplying a signed orbit by any nonzero distinction leaves its sign unchanged, a structural fact with a narrow scope.
A stability property of orbits
A signed orbit is an object in the framework's primitive recognition calculus that carries a sign, like a direction or a charge. The theorem in question states that when such an orbit is multiplied on the right by any nonzero distinction, its nonnegFlag, the marker that says whether the orbit is nonnegative, stays exactly the same. In plainer terms: multiplying by a nonzero element does not flip the sign or destroy the orbit's basic character.
The declaration is a theorem in the framework's machine-checked library of formal theorems, meaning its proof has been verified by a computer. It is a structural fact about how multiplication interacts with the sign flag in this calculus. The theorem is conditional: it requires the distinction d to be nonzero, and it applies specifically to right multiplication by an orbit built from a distinction via the ofOrbit construction.
What this theorem does not claim is broader significance. It does not say that all multiplications preserve signs, nor that the sign flag is invariant under every operation. It does not assert anything about left multiplication, about zero distinctions, or about the physical interpretation of orbits. It is a narrow algebraic lemma, not a statement about the universe or about recognition costs.
The value of the theorem is architectural. It establishes a clean, checkable property that later constructions can rely on: a nonzero right factor cannot alter the nonnegativity flag. This is the kind of small, precise fact that lets a larger formal system be built without hidden assumptions. It is a building block, not a headline result.
THEOREM nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean
theorem nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf
(z : SignedOrbit) (d : DistinctionNat) (hd : d ≠ DistinctionNat.zero) :
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).nonnegFlag = z.nonnegFlag := by
have hd' : d.toNat ≠ 0 := by
intro h
apply hd
rw [← DistinctionNat.ofNat_toNat d, h, DistinctionNat.ofNat_zero]
have hdpos : 0 < d.toNat := by omega
have hpos : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos.toNat = z.pos.toNat * d.toNat := by
show (z.pos * (SignedOrbit.ofOrbit d).pos + z.neg * (SignedOrbit.ofOrbit d).neg).toNat = _
have hp : (SignedOrbit.ofOrbit d).pos = d := rfl
have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl
rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul,
DistinctionNat.toNat_zero]
omega
have hneg : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg.toNat = z.neg.toNat * d.toNat := by
show (z.pos * (SignedOrbit.ofOrbit d).neg + z.neg * (SignedOrbit.ofOrbit d).pos).toNat = _
have hp : (SignedOrbit.ofOrbit d).pos = d := rfl
have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl
rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul,
DistinctionNat.toNat_zero]
omega
have key : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = true ↔
DistinctionNat.leq z.neg z.pos = true := by
rw [leq_eq_true_iff_cf, leq_eq_true_iff_cf, hpos, hneg]
constructor
· intro h
exact Nat.le_of_mul_le_mul_right h hdpos
· intro h
exact Nat.mul_le_mul_right _ h
show DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos =
DistinctionNat.leq z.neg z.pos
cases hb : DistinctionNat.leq z.neg z.pos with
| true => exact key.mpr hb
| false =>
cases hb2 : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos with
| true =>
rw [key.mp hb2] at hb
exact absurd hb (by decide)
| false => rfl
THEOREM nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean
theorem nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf
(z : SignedOrbit) (d : DistinctionNat) (hd : d ≠ DistinctionNat.zero) :
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).nonnegFlag = z.nonnegFlag := by
have hd' : d.toNat ≠ 0 := by
intro h
apply hd
rw [← DistinctionNat.ofNat_toNat d, h, DistinctionNat.ofNat_zero]
have hdpos : 0 < d.toNat := by omega
have hpos : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos.toNat = z.pos.toNat * d.toNat := by
show (z.pos * (SignedOrbit.ofOrbit d).pos + z.neg * (SignedOrbit.ofOrbit d).neg).toNat = _
have hp : (SignedOrbit.ofOrbit d).pos = d := rfl
have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl
rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul,
DistinctionNat.toNat_zero]
omega
have hneg : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg.toNat = z.neg.toNat * d.toNat := by
show (z.pos * (SignedOrbit.ofOrbit d).neg + z.neg * (SignedOrbit.ofOrbit d).pos).toNat = _
have hp : (SignedOrbit.ofOrbit d).pos = d := rfl
have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl
rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul,
DistinctionNat.toNat_zero]
omega
have key : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = true ↔
DistinctionNat.leq z.neg z.pos = true := by
rw [leq_eq_true_iff_cf, leq_eq_true_iff_cf, hpos, hneg]
constructor
· intro h
exact Nat.le_of_mul_le_mul_right h hdpos
· intro h
exact Nat.mul_le_mul_right _ h
show DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos =
DistinctionNat.leq z.neg z.pos
cases hb : DistinctionNat.leq z.neg z.pos with
| true => exact key.mpr hb
| false =>
cases hb2 : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg
(SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos with
| true =>
rw [key.mp hb2] at hb
exact absurd hb (by decide)
| false => rfl
What this page does not claim
The theorem does not claim sign invariance under left multiplication. The theorem does not claim anything about multiplication by zero distinctions. The theorem does not assert any physical meaning for orbits or their signs.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- What operations on signed orbits do change the nonnegFlag?
- How does this lemma support later constructions in the primitive recognition calculus?
- What is the physical or conceptual interpretation of a signed orbit in the framework?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean
theorem nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf (z : SignedOrbit) (d : DistinctionNat) (hd : d ≠ DistinctionNat.zero) : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).nonnegFlag = z.nonnegFlag := by have hd' : d.toNat ≠ 0 := by intro h apply hd rw [← DistinctionNat.ofNat_toNat d, h, DistinctionNat.ofNat_zero] have hdpos : 0 < d.toNat := by omega have hpos : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos.toNat = z.pos.toNat * d.toNat := by show (z.pos * (SignedOrbit.ofOrbit d).pos + z.neg * (SignedOrbit.ofOrbit d).neg).toNat = _ have hp : (SignedOrbit.ofOrbit d).pos = d := rfl have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul, DistinctionNat.toNat_zero] omega have hneg : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg.toNat = z.neg.toNat * d.toNat := by show (z.pos * (SignedOrbit.ofOrbit d).neg + z.neg * (SignedOrbit.ofOrbit d).pos).toNat = _ have hp : (SignedOrbit.ofOrbit d).pos = d := rfl have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul, DistinctionNat.toNat_zero] omega have key : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = true ↔ DistinctionNat.leq z.neg z.pos = true := by rw [leq_eq_true_iff_cf, leq_eq_true_iff_cf, hpos, hneg] constructor · intro h exact Nat.le_of_mul_le_mul_right h hdpos · intro h exact Nat.mul_le_mul_right _ h show DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = DistinctionNat.leq z.neg z.pos cases hb : DistinctionNat.leq z.neg z.pos with | true => exact key.mpr hb | false => cases hb2 : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos with | true => rw [key.mp hb2] at hb exact absurd hb (by decide) | false => rflWhen a signed orbit is multiplied on the right by any nonzero distinction, its nonnegFlag stays exactly the same. nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.leanTHEOREM nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean
theorem nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf (z : SignedOrbit) (d : DistinctionNat) (hd : d ≠ DistinctionNat.zero) : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).nonnegFlag = z.nonnegFlag := by have hd' : d.toNat ≠ 0 := by intro h apply hd rw [← DistinctionNat.ofNat_toNat d, h, DistinctionNat.ofNat_zero] have hdpos : 0 < d.toNat := by omega have hpos : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos.toNat = z.pos.toNat * d.toNat := by show (z.pos * (SignedOrbit.ofOrbit d).pos + z.neg * (SignedOrbit.ofOrbit d).neg).toNat = _ have hp : (SignedOrbit.ofOrbit d).pos = d := rfl have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul, DistinctionNat.toNat_zero] omega have hneg : (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg.toNat = z.neg.toNat * d.toNat := by show (z.pos * (SignedOrbit.ofOrbit d).neg + z.neg * (SignedOrbit.ofOrbit d).pos).toNat = _ have hp : (SignedOrbit.ofOrbit d).pos = d := rfl have hn : (SignedOrbit.ofOrbit d).neg = DistinctionNat.zero := rfl rw [hp, hn, DistinctionNat.toNat_add, DistinctionNat.toNat_mul, DistinctionNat.toNat_mul, DistinctionNat.toNat_zero] omega have key : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = true ↔ DistinctionNat.leq z.neg z.pos = true := by rw [leq_eq_true_iff_cf, leq_eq_true_iff_cf, hpos, hneg] constructor · intro h exact Nat.le_of_mul_le_mul_right h hdpos · intro h exact Nat.mul_le_mul_right _ h show DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos = DistinctionNat.leq z.neg z.pos cases hb : DistinctionNat.leq z.neg z.pos with | true => exact key.mpr hb | false => cases hb2 : DistinctionNat.leq (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).neg (SignedOrbit.mul z (SignedOrbit.ofOrbit d)).pos with | true => rw [key.mp hb2] at hb exact absurd hb (by decide) | false => rflThe theorem is conditional: it requires the distinction d to be nonzero. nonnegFlag_mul_ofOrbit_right_of_ne_zero_cf · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Grow/SignedOrbitNonnegFlagMulOfOrbitRightOfNeZeroChoiceFree.lean