structure
definition
CoupledAxis
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.RSCoupledAxis on GitHub at line 32.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
29 decide
30
31/-- A finite domain axis, tagged by the RS primitive that carries its meaning. -/
32structure CoupledAxis (n : ℕ) where
33 Ix : Type
34 finite : Fintype Ix
35 card_eq : @Fintype.card Ix finite = n
36 primitive : RSPrimitive
37
38/-- RS-independence means the axes are carried by different primitives. -/
39def independent {n m : ℕ} (A : CoupledAxis n) (B : CoupledAxis m) : Prop :=
40 A.primitive ≠ B.primitive
41
42/-- Pairwise independent triple of same-size axes. -/
43structure RSIndependentTriple (n : ℕ) where
44 axis1 : CoupledAxis n
45 axis2 : CoupledAxis n
46 axis3 : CoupledAxis n
47 indep12 : independent axis1 axis2
48 indep13 : independent axis1 axis3
49 indep23 : independent axis2 axis3
50
51/-- Pairwise independent disjoint sum of same-size axes. -/
52structure RSDisjointSum3 (n : ℕ) where
53 axis1 : CoupledAxis n
54 axis2 : CoupledAxis n
55 axis3 : CoupledAxis n
56 indep12 : independent axis1 axis2
57 indep13 : independent axis1 axis3
58 indep23 : independent axis2 axis3
59
60/-- Product of the cardinalities of three same-size RS-independent axes. -/
61def tripleProductCard {n : ℕ} (T : RSIndependentTriple n) : ℕ :=
62 @Fintype.card T.axis1.Ix T.axis1.finite *