OAI/Algebra/GroupRing/TypeWeights.lean
52 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeightline 14Source documentation
The conditional joint-incidence table in the manuscript, before excluding cancellation. Arguments here are the two outgoing letters at the vertex.
def jointWeight : Letter → Letter → ℝ | .inl _, .inl _ => 1/129 | .inl _, .inr _ => 129/16513 | .inr _, .inl _ => 129/16513 | .inr _, .inr _ => 1
- def
OAI.TorsionFreeZeroDivisors.TypeWeights.turnWeightline 20 - theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight_signedline 24Source documentation
The finite geometric incidence table equals the analytic table, without changing the given inverse pairing or field.
theorem jointWeight_signed (t u : Signed) : jointWeight (inverse (signedLetter t)) (signedLetter u) = WordEstimate.baseWeight t u := by …Mentions: OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight, OAI.TorsionFreeZeroDivisors.WordEstimate.baseWeight
- theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.turnWeight_signedline 33 - theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight_commline 42 - theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.joint_countBline 46Source documentation
At an internal chain vertex of side B this is an exact count.
theorem joint_countB (rep : ℕ) (a b : Letter) (hab : a ≠ b) : (Fintype.card {v : VertexB rep // a ∈ outgoingB v ∧ b ∈ outgoingB v} : ℝ) = (Fintype.card (VertexB rep) : ℝ) * (129/16513) * jointWeight a b := by …Mentions: OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight
- theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.joint_countA_leline 74Source documentation
The A-side conditional table is dominated by the B-side table, with the source's factor 1/2 for distinct extras.
theorem joint_countA_le (rep : ℕ) (a b : Letter) (hab : a ≠ b) : (Fintype.card {v : VertexA rep // a ∈ outgoingA v ∧ b ∈ outgoingA v} : ℝ) ≤ (Fintype.card (VertexA rep) : ℝ) * (129/16513) * jointWeight a b := by …Mentions: OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight
- theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.internal_countBline 105 - theorem
OAI.TorsionFreeZeroDivisors.TypeWeights.internal_countAline 110 - def
OAI.TorsionFreeZeroDivisors.StageRealization.allowedline 124Source documentation
Actual vertex carriers: all outgoing template ports must be available;
pinimposes exactly the prescribed images, not extra random conditions.def allowed (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (v : PV) : Finset TV := … - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_portsline 130 - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_card_leline 138 - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.pinned_card_leline 144 - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_turn_leline 155Source documentation
A turn at an internal chain vertex restricts its image to the joint carrier. This does not assume independence of consecutive turns.
theorem allowed_turn_le (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (v : PV) (a b : PD) (ha : Γ.origin a = v) (hb : Γ.origin b = v) : (allowed Γ plabel outgoing pin v).card ≤ Fintype.card {x : TV // plabel a ∈ outgoing x ∧ plabel b ∈ outgoing x} := by …Mentions: OAI.TorsionFreeZeroDivisors.StageRealization.allowed
- def
OAI.TorsionFreeZeroDivisors.StageRealization.realizationsline 168Source documentation
Concrete realization count for one fixed immersed labeling.
def realizations (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (bar : T → T) (r : Matching (label outgoing) bar) : ℕ := … - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.fixed_label_boundline 177Source documentation
Finite, exact form of the source fixed-label first moment.
cost vis a literal upper bound for carrier size; the matching estimate is proved above.theorem fixed_label_bound (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (bar : T → T) (hbar : ∀ t, bar t ≠ t) (himm : Function.Injective (fun d => (Γ.origin d,plabel d))) (N d R : ℕ) (h2 : 2 ≤ d) (hR : 0 < R) (hd : ∀ v, Nat.card {e : Dart outgoing // origin outgoing e = v} ≤ d) (hsize : ∀ x : Dart outgoing, R + (edges Γ).card + 4*d^(2*N+1) ≤ Nat.card {e : Dart outgoing // label outgoing e = label outgoing x}) (hΩ : (Matching.conditioned (label := label outgoing) (bar := bar) … - def
OAI.TorsionFreeZeroDivisors.StageRealization.vertexCostline 200Source documentation
Source internal-turn product, retaining a finite, explicit matching error denominator instead of hiding it in o(L).
def vertexCost (n p : ℝ) (J : Finset PV) (w : T → T → ℝ) (a b : PV → T) (pin : PV → Option TV) (v : PV) : ℝ := … - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.product_vertexCostline 205 - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_costline 224Source documentation
Every eligible local carrier is bounded by its actual type-table cost.
theorem allowed_cost (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (J : Finset PV) (a b : PV → PD) (ha : ∀ v ∈ J, Γ.origin (a v) = v) (hb : ∀ v ∈ J, Γ.origin (b v) = v) (hab : ∀ v ∈ J, a v ≠ b v) (himm : Function.Injective (fun d => (Γ.origin d,plabel d))) (n p : ℝ) (w : T → T → ℝ) (hn : (Fintype.card TV : ℝ) ≤ n) (htable : ∀ t u, t ≠ u → (Fintype.card {x : TV // t ∈ outgoing x ∧ u ∈ outgoing x} : ℝ) ≤ n*p*w t u) : ∀ v, ((allowed Γ plabel outgoing pin v).card : ℝ) ≤ vertexCost n p J w (plabel ∘ a) (plabel ∘ b) pin v := by …Mentions: OAI.TorsionFreeZeroDivisors.StageRealization.allowed, OAI.TorsionFreeZeroDivisors.StageRealization.vertexCost
- theorem
OAI.TorsionFreeZeroDivisors.StageRealization.turn_product_boundline 255Source documentation
Literal fixed-label bound with actual internal turns and fixed vertices, before taking logarithms or asymptotics.
theorem turn_product_bound (Γ : PortGraph PV PD) (plabel : PD → T) (outgoing : TV → Finset T) (pin : PV → Option TV) (bar : T → T) (hbar : ∀ t, bar t ≠ t) (himm : Function.Injective (fun d => (Γ.origin d,plabel d))) (N d R : ℕ) (h2 : 2 ≤ d) (hR : 0 < R) (hd : ∀ v, Nat.card {e : Dart outgoing // origin outgoing e = v} ≤ d) (hsize : ∀ x : Dart outgoing, R + (edges Γ).card + 4*d^(2*N+1) ≤ Nat.card {e : Dart outgoing // label outgoing e = label outgoing x}) (hΩ : (Matching.conditioned (label := label outgoing) (bar := bar) … - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_costAline 293Source documentation
The exact source A-side empirical counts instantiate the local estimate.
theorem allowed_costA (pin : PV → Option (VertexA rep)) : ∀ v, ((allowed Γ plabel (@outgoingA rep) pin v).card : ℝ) ≤ vertexCost (Fintype.card (VertexA rep)) (129/16513) J TypeWeights.jointWeight (plabel ∘ a) (plabel ∘ b) pin v := …Mentions: OAI.TorsionFreeZeroDivisors.StageRealization.allowed, OAI.TorsionFreeZeroDivisors.StageRealization.vertexCost, OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight
- theorem
OAI.TorsionFreeZeroDivisors.StageRealization.allowed_costBline 303Source documentation
The B-side count uses its own types, not independent coordinates.
theorem allowed_costB (pin : PV → Option (VertexB rep)) : ∀ v, ((allowed Γ plabel (@outgoingB rep) pin v).card : ℝ) ≤ vertexCost (Fintype.card (VertexB rep)) (129/16513) J TypeWeights.jointWeight (plabel ∘ a) (plabel ∘ b) pin v := …Mentions: OAI.TorsionFreeZeroDivisors.StageRealization.allowed, OAI.TorsionFreeZeroDivisors.StageRealization.vertexCost, OAI.TorsionFreeZeroDivisors.TypeWeights.jointWeight
- theorem
OAI.TorsionFreeZeroDivisors.StageRealization.mean_productline 315Source documentation
Exact expectation factorization for the two independently chosen side matchings. No independence of edges within either matching is used.
theorem mean_product {A B : Type*} (S : Finset A) (U : Finset B) (f : A → ℝ) (g : B → ℝ) : (∑ x ∈ S, ∑ y ∈ U, f x*g y) / ((S.card : ℝ)*U.card) = ((∑ x ∈ S, f x)/S.card) * ((∑ y ∈ U, g y)/U.card) := by … - theorem
OAI.TorsionFreeZeroDivisors.StageRealization.mean_product_leline 322Source documentation
Combining the side bounds correctly counts a mixed-side stage.
theorem mean_product_le {A B : Type*} (S : Finset A) (U : Finset B) (f : A → ℝ) (g : B → ℝ) (hf : ∀ x ∈ S, 0 ≤ f x) (hg : ∀ y ∈ U, 0 ≤ g y) (a b : ℝ) (ha : (∑ x ∈ S, f x)/S.card ≤ a) (hb : (∑ y ∈ U, g y)/U.card ≤ b) : (∑ x ∈ S, ∑ y ∈ U, f x*g y) / ((S.card : ℝ)*U.card) ≤ a*b := by … - abbrev
OAI.TorsionFreeZeroDivisors.ChainSubdivision.Interiorline 336 - abbrev
OAI.TorsionFreeZeroDivisors.ChainSubdivision.Vertexline 337 - abbrev
OAI.TorsionFreeZeroDivisors.ChainSubdivision.Edgeline 338 - abbrev
OAI.TorsionFreeZeroDivisors.ChainSubdivision.Dartline 339 - def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.pointline 341 - def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.graphline 345 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.reverseline 355 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.origin_forwardline 356 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.origin_backwardline 358 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.at_zeroline 361 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.at_lastline 364 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.at_interiorline 368 - def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.backline 375Source documentation
Outgoing darts at an internal vertex: the preceding edge backwards and following edge forwards, with no arbitrary choices.
def back (v : Interior len) : Dart len := (⟨v.1,⟨v.2.val,by omega⟩⟩,true)
Mentions: OAI.TorsionFreeZeroDivisors.ChainSubdivision.Interior, OAI.TorsionFreeZeroDivisors.ChainSubdivision.Dart
- def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.frontline 376 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.back_originline 378 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.front_originline 381 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.back_ne_frontline 385 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.at_eq_interiorline 390 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.internal_portsline 402Source documentation
Each internal vertex has precisely the two prescribed outgoing darts.
theorem internal_ports (v : Interior len) (d : Dart len) : (graph len first last).origin d = .inr v ↔ d = back len v ∨ d = front len v := by …Mentions: OAI.TorsionFreeZeroDivisors.ChainSubdivision.Interior, OAI.TorsionFreeZeroDivisors.ChainSubdivision.Dart, OAI.TorsionFreeZeroDivisors.ChainSubdivision.graph, OAI.TorsionFreeZeroDivisors.ChainSubdivision.back, OAI.TorsionFreeZeroDivisors.ChainSubdivision.front
- theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.card_edgesline 432 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.card_dartsline 435 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.card_interiorsline 438 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.card_verticesline 442Source documentation
Interior and endpoint counts are kept separate, including loop chains.
theorem card_vertices (hpos : ∀ c, 0 < len c) : Fintype.card (Vertex len (V := V)) + Fintype.card C = Fintype.card V + ∑ c, len c := by …Mentions: OAI.TorsionFreeZeroDivisors.ChainSubdivision.Vertex
- def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.internalline 455Source documentation
The complete set of unmarked internal vertices.
def internal : Finset (Vertex len (V := V)) := Finset.univ.image Sum.inr …
Mentions: OAI.TorsionFreeZeroDivisors.ChainSubdivision.Vertex
- theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.mem_internalline 458 - theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.card_internalline 463 - def
OAI.TorsionFreeZeroDivisors.ChainSubdivision.multiplicityline 467Source documentation
Constant traversal multiplicity on each original marked chain.
def multiplicity (m : C → ℕ) (d : Dart len) := m d.1.1 …
- theorem
OAI.TorsionFreeZeroDivisors.ChainSubdivision.multiplicity_reverseline 469