theorem
proved
oceanCount
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.CrossDomain.PlanetStratification on GitHub at line 39.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
36
37theorem atmoCount : Fintype.card AtmosphericLayer = 5 := by decide
38theorem earthCount : Fintype.card EarthLayer = 5 := by decide
39theorem oceanCount : Fintype.card OceanLayer = 5 := by decide
40
41abbrev PlanetStratum : Type := AtmosphericLayer ⊕ EarthLayer ⊕ OceanLayer
42
43theorem planetStratumCount : Fintype.card PlanetStratum = 15 := by
44 simp only [PlanetStratum, Fintype.card_sum, atmoCount, earthCount, oceanCount]
45
46/-- The three injections are not surjective: each covers only 5 of 15. -/
47theorem atmo_is_proper_subset :
48 Fintype.card PlanetStratum > Fintype.card AtmosphericLayer := by
49 rw [planetStratumCount, atmoCount]; decide
50
51theorem earth_is_proper_subset :
52 Fintype.card PlanetStratum > Fintype.card EarthLayer := by
53 rw [planetStratumCount, earthCount]; decide
54
55theorem ocean_is_proper_subset :
56 Fintype.card PlanetStratum > Fintype.card OceanLayer := by
57 rw [planetStratumCount, oceanCount]; decide
58
59/-- 15 = 3 × D (where D = 5). -/
60theorem planetStratum_three_D : 15 = 3 * 5 := by decide
61
62structure PlanetStratificationCert where
63 stratum_count : Fintype.card PlanetStratum = 15
64 three_D : 15 = 3 * 5
65 atmo_sub : Fintype.card PlanetStratum > Fintype.card AtmosphericLayer
66 earth_sub : Fintype.card PlanetStratum > Fintype.card EarthLayer
67 ocean_sub : Fintype.card PlanetStratum > Fintype.card OceanLayer
68
69def planetStratificationCert : PlanetStratificationCert where