def
definition
primitiveOrderList
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Ethics.Virtues.NormalForm on GitHub at line 24.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
21 deriving DecidableEq, Repr
22
23/-- Canonical primitive order as a list. -/
24def primitiveOrderList : List Primitive :=
25 [ Primitive.Love, Primitive.Justice, Primitive.Forgiveness,
26 Primitive.Wisdom, Primitive.Courage, Primitive.Temperance,
27 Primitive.Prudence, Primitive.Compassion, Primitive.Gratitude,
28 Primitive.Patience, Primitive.Humility, Primitive.Hope,
29 Primitive.Creativity, Primitive.Sacrifice ]
30
31lemma primitive_mem_order (p : Primitive) : p ∈ primitiveOrderList := by
32 cases p <;> simp [primitiveOrderList]
33
34lemma primitiveOrderList_nodup : primitiveOrderList.Nodup := by
35 unfold primitiveOrderList
36 decide
37
38/-- Micro moves: (pair scope, primitive, coefficient). -/
39structure MicroMove where
40 pair : ℕ
41 primitive : Primitive
42 coeff : ℝ
43
44namespace MicroMove
45
46/-- Canonical micro-move normal form: coefficient table with finite support. -/
47@[ext]
48structure NormalForm where
49 supportPairs : Finset ℕ
50 coeff : ℕ → Primitive → ℝ
51 zero_outside : ∀ {pair prim}, pair ∉ supportPairs → coeff pair prim = 0
52 nontrivial : ∀ {pair}, pair ∈ supportPairs → ∃ prim, coeff pair prim ≠ 0
53
54namespace NormalForm