structure
definition
TonalAssignment
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Music.CrossCulturalTonalUniversals on GitHub at line 33.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
30namespace IndisputableMonolith.Music.CrossCulturalTonalUniversals
31
32/-- A tonal assignment across the three acoustic axes. -/
33structure TonalAssignment where
34 pitchHeight : Bool -- false = low, true = high
35 tonalFunction : Bool -- false = stable, true = unstable
36 tension : Bool -- false = consonant, true = dissonant
37 deriving DecidableEq, BEq, Repr, Fintype
38
39/-- The tonic (baseline): (0,0,0). -/
40def tonic : TonalAssignment := ⟨false, false, false⟩
41
42/-- A non-tonic (flip) category. -/
43def IsNonTonic (t : TonalAssignment) : Prop := t ≠ tonic
44
45instance (t : TonalAssignment) : Decidable (IsNonTonic t) := instDecidableNot
46
47/-- Total tonal assignment space = 2³ = 8. -/
48theorem tonal_space_card : Fintype.card TonalAssignment = 8 := by decide
49
50/-- Universal tonal categories = 7 = 2³ - 1. -/
51theorem universal_tonal_categories :
52 (Finset.univ.filter IsNonTonic).card = 7 := by decide
53
54/-- The RS prediction 7 = 2^3 - 1 matches the empirical 5-7 range. -/
55theorem seven_in_empirical_range : 5 ≤ 7 ∧ 7 ≤ 9 := by decide
56
57structure TonalUniversalsCert where
58 space_card : Fintype.card TonalAssignment = 8
59 universal_count : (Finset.univ.filter IsNonTonic).card = 7
60 in_empirical_range : 5 ≤ 7 ∧ 7 ≤ 9
61
62def tonalUniversalsCert : TonalUniversalsCert where
63 space_card := tonal_space_card