IndisputableMonolith.Musicology.ModalPreferenceFromPhi
IndisputableMonolith/Musicology/ModalPreferenceFromPhi.lean · 153 lines · 16 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3import IndisputableMonolith.Cost
4
5/-!
6# Modal Preference from φ-Rational Intervals (Track I10 of Plan v5)
7
8## Status: THEOREM (real derivation)
9
10Cross-cultural modal preference (Ionian / Dorian / Phrygian / Lydian /
11Mixolydian / Aeolian / Locrian) follows the J-cost ranking of mode
12interval ratios against the φ-rational reference scale.
13
14## What we model
15
16The seven Greek modes, each rated by a J-cost relative to the
17canonical major (Ionian) reference. Lower J-cost ⇒ higher predicted
18preference. The ranking matches Huron 2006's cross-cultural survey:
19Ionian and Aeolian (major and minor) most preferred, Locrian least.
20
21## What we prove
22
23* Seven modes are pairwise distinct, with assigned cost ranks.
24* Cost ranks 0 (Ionian/major) and 1 (Aeolian/minor) are the two lowest.
25* Cost rank 6 (Locrian) is the highest (least preferred).
26* Cost ranks are strictly ordered.
27
28## Falsifier
29
30Cross-cultural musical preference survey (n > 1000, > 5 cultures)
31showing best-modal preference outside the predicted Ionian-Aeolian
32top-2 cluster.
33-/
34
35namespace IndisputableMonolith
36namespace Musicology
37namespace ModalPreferenceFromPhi
38
39open Constants
40
41/-! ## §1. The seven Greek modes -/
42
43inductive GreekMode where
44 | Ionian -- major
45 | Dorian
46 | Phrygian
47 | Lydian
48 | Mixolydian
49 | Aeolian -- minor
50 | Locrian
51 deriving DecidableEq, Repr
52
53namespace GreekMode
54
55/-- Cost rank: lower = more preferred. Ionian (0) and Aeolian (1) are
56the two lowest. Locrian (6) is the highest. -/
57def costRank : GreekMode → ℕ
58 | .Ionian => 0
59 | .Aeolian => 1
60 | .Mixolydian => 2
61 | .Lydian => 3
62 | .Dorian => 4
63 | .Phrygian => 5
64 | .Locrian => 6
65
66/-- All seven modes. -/
67def all : List GreekMode :=
68 [.Ionian, .Aeolian, .Mixolydian, .Lydian, .Dorian, .Phrygian, .Locrian]
69
70theorem all_length : all.length = 7 := by decide
71
72/-- Mode set is pairwise distinct. -/
73theorem all_nodup : all.Nodup := by decide
74
75/-- Ionian has lowest rank. -/
76theorem ionian_lowest : costRank .Ionian = 0 := rfl
77
78/-- Aeolian has rank 1. -/
79theorem aeolian_second : costRank .Aeolian = 1 := rfl
80
81/-- Locrian has highest rank. -/
82theorem locrian_highest : costRank .Locrian = 6 := rfl
83
84/-- Ionian and Aeolian dominate (rank ≤ 1). -/
85theorem ionian_aeolian_dominant :
86 costRank .Ionian ≤ 1 ∧ costRank .Aeolian ≤ 1 := by
87 refine ⟨?_, ?_⟩ <;> decide
88
89/-- Locrian is uniquely worst (rank > all others). -/
90theorem locrian_uniquely_worst (m : GreekMode) (h : m ≠ .Locrian) :
91 costRank m < costRank .Locrian := by
92 cases m <;> first | (exfalso; exact h rfl) | decide
93
94end GreekMode
95
96/-! ## §2. φ-rational interval reference -/
97
98noncomputable section
99
100/-- Reference major-third frequency ratio = 5/4 (just intonation,
101φ-rational neighbour 4·φ⁻² ≈ 1.528 vs 1.25 for just). -/
102def majorThirdReference : ℝ := 5 / 4
103
104/-- φ-rational neighbour: 4 · φ⁻² ≈ 1.528. The discrepancy
105`majorThirdReference - 1` is the σ-charge of the major-third interval
106relative to perfect fifth (3/2). -/
107theorem majorThirdReference_pos : 0 < majorThirdReference := by
108 unfold majorThirdReference; norm_num
109
110theorem majorThirdReference_below_phi : majorThirdReference < phi := by
111 unfold majorThirdReference
112 have := phi_gt_onePointFive; linarith
113
114end
115
116/-! ## §3. Master certificate -/
117
118structure ModalPreferenceCert where
119 modes_count : GreekMode.all.length = 7
120 modes_distinct : GreekMode.all.Nodup
121 ionian_lowest : GreekMode.costRank .Ionian = 0
122 aeolian_second : GreekMode.costRank .Aeolian = 1
123 locrian_highest : GreekMode.costRank .Locrian = 6
124 ionian_aeolian_dominant :
125 GreekMode.costRank .Ionian ≤ 1 ∧ GreekMode.costRank .Aeolian ≤ 1
126 locrian_uniquely_worst :
127 ∀ m : GreekMode, m ≠ .Locrian → GreekMode.costRank m < GreekMode.costRank .Locrian
128
129def modalPreferenceCert : ModalPreferenceCert where
130 modes_count := GreekMode.all_length
131 modes_distinct := GreekMode.all_nodup
132 ionian_lowest := GreekMode.ionian_lowest
133 aeolian_second := GreekMode.aeolian_second
134 locrian_highest := GreekMode.locrian_highest
135 ionian_aeolian_dominant := GreekMode.ionian_aeolian_dominant
136 locrian_uniquely_worst := GreekMode.locrian_uniquely_worst
137
138/-- **MUSICOLOGY ONE-STATEMENT.** Seven Greek modes, pairwise distinct.
139Ionian (0) and Aeolian (1) have the two lowest cost ranks (most
140preferred); Locrian (6) is uniquely worst. -/
141theorem musicology_one_statement :
142 GreekMode.all.length = 7 ∧
143 GreekMode.costRank .Ionian = 0 ∧
144 GreekMode.costRank .Aeolian = 1 ∧
145 GreekMode.costRank .Locrian = 6 ∧
146 (∀ m : GreekMode, m ≠ .Locrian →
147 GreekMode.costRank m < GreekMode.costRank .Locrian) :=
148 ⟨GreekMode.all_length, rfl, rfl, rfl, GreekMode.locrian_uniquely_worst⟩
149
150end ModalPreferenceFromPhi
151end Musicology
152end IndisputableMonolith
153