theorem
proved
erikson_eq_2cube
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.CrossDomain.DevelopmentReversal on GitHub at line 32.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
29 deriving DecidableEq, Repr, BEq, Fintype
30
31theorem eriksonCount : Fintype.card EriksonStage = 8 := by decide
32theorem erikson_eq_2cube : Fintype.card EriksonStage = 2 ^ 3 := by decide
33
34/-- Reversal map on `Fin 8`. -/
35def reverse : Fin 8 → Fin 8 := fun k => ⟨7 - k.val, by omega⟩
36
37/-- Reversal is an involution: reverse ∘ reverse = id. -/
38theorem reverse_involution (k : Fin 8) : reverse (reverse k) = k := by
39 apply Fin.ext
40 simp only [reverse]
41 omega
42
43/-- Reversal swaps first and last. -/
44theorem reverse_swaps_endpoints :
45 reverse ⟨0, by decide⟩ = ⟨7, by decide⟩ ∧
46 reverse ⟨7, by decide⟩ = ⟨0, by decide⟩ := by
47 refine ⟨?_, ?_⟩
48 · apply Fin.ext; simp [reverse]
49 · apply Fin.ext; simp [reverse]
50
51/-- Mid-life stages invert before early ones:
52 reverse of stage 6 (generativity) = stage 1 (autonomy),
53 reverse of stage 0 (trust) = stage 7 (integrity).
54 So going in reverse from old-age, we pass stage 6's inverse at
55 position 1 before stage 0's inverse at position 7. -/
56theorem midlife_inverts_first :
57 (reverse ⟨6, by decide⟩).val < (reverse ⟨0, by decide⟩).val := by
58 simp [reverse]
59
60structure DevelopmentReversalCert where
61 stage_count : Fintype.card EriksonStage = 8
62 two_cube : Fintype.card EriksonStage = 2 ^ 3