Research-Stack/0-Core-Formalism/lean/Semantics/Semantics/DomainRegistryAlignment.lean

208 lines
10 KiB
Text

/- DOMAIN REGISTRY ALIGNMENT — Research Stack ↔ MOIM
═══════════════════════════════════════════════════════════════════════════════
Aligns Research Stack's equation domains with MOIM's 16 domain registries
for unified classification and cross-referencing.
MOIM's 16 Domain Registries:
1. Mathematics (12 subdomains)
2. Physics
3. Chemistry
4. Biology
5. Medicine
6. Neuroscience
7. Psychology
8. Anthropology
9. Political Science
10. Social Systems
11. Engineering
12. Materials Science
13. Computer Science
14. Earth / Cosmology
15. Music / Acoustics
16. Uncategorized
Research Stack Domain Types (from MATH_MODEL_MAP.tsv):
- LAYER_C_TOPOLOGY (geometric topology)
- LAYER_A_COMPRESSION (informational compression)
- LAYER_G_ENERGY (thermodynamic/energy)
- LAYER_D_INVARIANTS (geometric invariants)
- LAYER_K_SIGNAL (control/signal processing)
- geometric_bind, informational_bind, thermodynamic_bind, physical_bind, control_bind
- MD_EXTRACT (extracted from other domains)
═══════════════════════════════════════════════════════════════════════════════ -/
import Mathlib
namespace DomainAlignment
-- ═══════════════════════════════════════════════════════════════════════════════
-- MOIM DOMAINS — 16 domain registry structure
-- ═══════════════════════════════════════════════════════════════════════════════
inductive MOIMDomain
| mathematics
| physics
| chemistry
| biology
| medicine
| neuroscience
| psychology
| anthropology
| political_science
| social_systems
| engineering
| materials_science
| computer_science
| earth_cosmology
| music_acoustics
| uncategorized
deriving Repr, BEq
instance : ToString MOIMDomain where toString
| .mathematics => "Mathematics"
| .physics => "Physics"
| .chemistry => "Chemistry"
| .biology => "Biology"
| .medicine => "Medicine"
| .neuroscience => "Neuroscience"
| .psychology => "Psychology"
| .anthropology => "Anthropology"
| .political_science => "Political Science"
| .social_systems => "Social Systems"
| .engineering => "Engineering"
| .materials_science => "Materials Science"
| .computer_science => "Computer Science"
| .earth_cosmology => "Earth / Cosmology"
| .music_acoustics => "Music / Acoustics"
| .uncategorized => "Uncategorized"
-- ═══════════════════════════════════════════════════════════════════════════════
-- RESEARCH STACK DOMAINS — Current classification system
-- ═══════════════════════════════════════════════════════════════════════════════
inductive ResearchStackDomain
| layer_c_topology -- Geometric topology
| layer_a_compression -- Informational compression
| layer_g_energy -- Thermodynamic/energy
| layer_d_invariants -- Geometric invariants
| layer_k_signal -- Control/signal processing
| geometric_bind
| informational_bind
| thermodynamic_bind
| physical_bind
| control_bind
| md_extract -- Extracted from other domains
| unknown
deriving Repr, BEq
instance : ToString ResearchStackDomain where toString
| .layer_c_topology => "LAYER_C_TOPOLOGY"
| .layer_a_compression => "LAYER_A_COMPRESSION"
| .layer_g_energy => "LAYER_G_ENERGY"
| .layer_d_invariants => "LAYER_D_INVARIANTS"
| .layer_k_signal => "LAYER_K_SIGNAL"
| .geometric_bind => "geometric_bind"
| .informational_bind => "informational_bind"
| .thermodynamic_bind => "thermodynamic_bind"
| .physical_bind => "physical_bind"
| .control_bind => "control_bind"
| .md_extract => "MD_EXTRACT"
| .unknown => "unknown"
-- ═══════════════════════════════════════════════════════════════════════════════
-- DOMAIN ALIGNMENT MAPPING — Research Stack → MOIM
-- ═══════════════════════════════════════════════════════════════════════════════
/-- Maps Research Stack domains to MOIM domains based on semantic alignment. -/
def alignDomain (rs_domain : ResearchStackDomain) : MOIMDomain :=
match rs_domain with
| .layer_c_topology => .mathematics -- Topology is mathematical
| .layer_a_compression => .computer_science -- Information theory/CS
| .layer_g_energy => .physics -- Energy/thermodynamics
| .layer_d_invariants => .mathematics -- Geometric invariants
| .layer_k_signal => .engineering -- Signal processing/engineering
| .geometric_bind => .mathematics -- Geometry
| .informational_bind => .computer_science -- Information theory
| .thermodynamic_bind => .physics -- Thermodynamics
| .physical_bind => .physics -- Physical laws
| .control_bind => .engineering -- Control theory
| .md_extract => .uncategorized -- Extracted, needs classification
| .unknown => .uncategorized
-- ═══════════════════════════════════════════════════════════════════════════════
-- REVERSE MAPPING — MOIM → Research Stack (when applicable)
-- ═══════════════════════════════════════════════════════════════════════════════
/-- Maps MOIM domains back to Research Stack domains (many-to-one where needed). -/
def reverseAlignDomain (moim_domain : MOIMDomain) : List ResearchStackDomain :=
match moim_domain with
| .mathematics => [.layer_c_topology, .layer_d_invariants, .geometric_bind]
| .physics => [.layer_g_energy, .thermodynamic_bind, .physical_bind]
| .computer_science => [.layer_a_compression, .informational_bind]
| .engineering => [.layer_k_signal, .control_bind]
| .chemistry => []
| .biology => []
| .medicine => []
| .neuroscience => []
| .psychology => []
| .anthropology => []
| .political_science => []
| .social_systems => []
| .materials_science => []
| .earth_cosmology => []
| .music_acoustics => []
| .uncategorized => [.md_extract, .unknown]
-- ═══════════════════════════════════════════════════════════════════════════════
-- DOMAIN COMPATIBILITY CHECK
-- ═══════════════════════════════════════════════════════════════════════════════
/-- Check if two Research Stack domains map to the same MOIM domain (compatible). -/
def domainsCompatible (d1 d2 : ResearchStackDomain) : Bool :=
alignDomain d1 = alignDomain d2
/-- Check if alignment is bidirectional (exact mapping). -/
def alignmentIsBidirectional (rs_domain : ResearchStackDomain) : Bool :=
let moim := alignDomain rs_domain
rs_domain ∈ reverseAlignDomain moim
-- ═══════════════════════════════════════════════════════════════════════════════
-- DOMAIN STATISTICS
-- ═══════════════════════════════════════════════════════════════════════════════
/-- Count how many Research Stack domains map to each MOIM domain. -/
def countMappingsToMOIM (moim_domain : MOIMDomain) : Nat :=
let all_rs := [
.layer_c_topology, .layer_a_compression, .layer_g_energy, .layer_d_invariants,
.layer_k_signal, .geometric_bind, .informational_bind, .thermodynamic_bind,
.physical_bind, .control_bind, .md_extract, .unknown
]
all_rs.count (λ d => alignDomain d = moim_domain)
/-- Check alignment coverage: how many RS domains have bidirectional mapping. -/
def bidirectionalCoverage : Nat :=
let all_rs := [
.layer_c_topology, .layer_a_compression, .layer_g_energy, .layer_d_invariants,
.layer_k_signal, .geometric_bind, .informational_bind, .thermodynamic_bind,
.physical_bind, .control_bind, .md_extract, .unknown
]
all_rs.count alignmentIsBidirectional
-- ═══════════════════════════════════════════════════════════════════════════════
-- VERIFICATION EXAMPLES
-- ═══════════════════════════════════════════════════════════════════════════════
#eval alignDomain .layer_c_topology -- Should be mathematics
#eval alignDomain .layer_g_energy -- Should be physics
#eval alignDomain .layer_a_compression -- Should be computer_science
#eval domainsCompatible .layer_c_topology .layer_d_invariants -- Should be true (both mathematics)
#eval domainsCompatible .layer_g_energy .thermodynamic_bind -- Should be true (both physics)
#eval countMappingsToMOIM .mathematics -- Should count topology, invariants, geometric_bind
#eval countMappingsToMOIM .physics -- Should count energy, thermodynamic, physical
#eval bidirectionalCoverage -- Should count domains with exact reverse mapping
end DomainAlignment