OAI/NumberTheory/Ostmann/Characters/AnchorPairCode.lean
14 declarations, 0 contain sorry, 0 declared as axioms
Anchor codes from the actual graph update
- def
OAI.Ostmann.anchorSignPairline 12 - theorem
OAI.Ostmann.transferCopySign_sqline 15 - theorem
OAI.Ostmann.transferCopySign_injectiveline 18 - theorem
OAI.Ostmann.transferred_anchor_pairline 25Source documentation
Normalize by the new bulk parity. Its inverse equals itself, since it is a sign. Both entries come directly from the copied graph, including the cross-copy incoming-pivot coefficient.
theorem transferred_anchor_pair {H Y : Type*} (b : Option (H ⊕ Y) → Option (H ⊕ Y) → ℤ) (a i : H) (α ε : ℤ) (hε : ε = 1 ∨ ε = -1) (hincoming : b (some (.inl a)) (some (.inl i)) = ε) (hpivot : b (some (.inl a)) none = α) (t : Bool) : (transferCopySign t * ε * transferredGraph b (.inl (true, a)) (.inl (t, i)), transferCopySign t * ε * transferredGraph b (.inl (false, a)) (.inl (t, i))) = anchorSignPair α ε t := by …Mentions: OAI.Ostmann.transferCopySign, OAI.Ostmann.transferredGraph, OAI.Ostmann.anchorSignPair
- theorem
OAI.Ostmann.transferred_anchor_code_preservedline 38Source documentation
Once created, an outside anchor's normalized code is unchanged by every later bulk copy.
theorem transferred_anchor_code_preserved {H Y : Type*} (b : Option (H ⊕ Y) → Option (H ⊕ Y) → ℤ) (y : Y) (i : H) (ε : ℤ) (t : Bool) : (transferCopySign t * ε) * transferredGraph b (.inr y) (.inl (t, i)) = ε * b (some (.inr y)) (some (.inl i)) := by …Mentions: OAI.Ostmann.transferCopySign, OAI.Ostmann.transferredGraph
- theorem
OAI.Ostmann.anchorSignPair_determines_parityline 45 - def
OAI.Ostmann.copyPathParityline 52 - theorem
OAI.Ostmann.copyPathParity_signline 56 - def
OAI.Ostmann.finiteCopyPathline 64 - def
OAI.Ostmann.finiteAnchorCodeline 67 - def
OAI.Ostmann.finalCopyParityline 70 - theorem
OAI.Ostmann.finiteAnchorCode_prefix_parityline 72 - theorem
OAI.Ostmann.finiteAnchorCode_final_injectiveline 80Source documentation
All code pairs determine the incoming parities; the final parity then determines the last copy sign as well.
theorem finiteAnchorCode_final_injective {n : ℕ} (α : Fin n → ℤ) (hα : ∀ j, α j = 1 ∨ α j = -1) : Function.Injective (fun t : Fin n → Bool => (finiteAnchorCode α t, finalCopyParity t)) := by …Mentions: OAI.Ostmann.finiteAnchorCode, OAI.Ostmann.finalCopyParity
- theorem
OAI.Ostmann.card_anchorCode_fiber_le_twoline 100Source documentation
There are at most two paths with any fixed anchor code.
theorem card_anchorCode_fiber_le_two {n : ℕ} (α : Fin n → ℤ) (hα : ∀ j, α j = 1 ∨ α j = -1) (code : Fin n → ℤ × ℤ) : Fintype.card {t : Fin n → Bool // finiteAnchorCode α t = code} ≤ 2 := by …Mentions: OAI.Ostmann.finiteAnchorCode