theorem
proved
reverse_swaps_endpoints
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 44.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
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
63 involution : ∀ k : Fin 8, reverse (reverse k) = k
64 endpoints_swap : reverse ⟨0, by decide⟩ = ⟨7, by decide⟩
65 midlife_first : (reverse ⟨6, by decide⟩).val < (reverse ⟨0, by decide⟩).val
66
67def developmentReversalCert : DevelopmentReversalCert where
68 stage_count := eriksonCount
69 two_cube := erikson_eq_2cube
70 involution := reverse_involution
71 endpoints_swap := reverse_swaps_endpoints.1
72 midlife_first := midlife_inverts_first
73
74end IndisputableMonolith.CrossDomain.DevelopmentReversal