mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
507 lines
19 KiB
Text
507 lines
19 KiB
Text
import Semantics
|
|
import Semantics.Physics.Tests
|
|
|
|
open Semantics
|
|
open Semantics.Atom
|
|
open Semantics.ENE
|
|
open Semantics.Physics
|
|
|
|
-- Tests for the ENE Semantic Database
|
|
-- These examples verify that the formalization compiles and that
|
|
-- the master admissibility laws are provable for well-formed structures.
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Lemma tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
def killLemma : Lemma := {
|
|
canonical := "kill",
|
|
sig := [cause, someone, die],
|
|
pos := .verb
|
|
}
|
|
|
|
/-- Verify that 'killLemma' is Agentive. -/
|
|
def kill_is_agentive : isAgentive killLemma := by
|
|
unfold isAgentive
|
|
unfold HasAtom
|
|
simp [killLemma]
|
|
|
|
/-- A function that ONLY accepts agentive lemmas. -/
|
|
def processAgentiveAction (l : Lemma) (_h : isAgentive l) : String :=
|
|
s!"Successfully processing agentive lemma: {l.canonical}"
|
|
|
|
def test_execution := processAgentiveAction killLemma kill_is_agentive
|
|
|
|
#eval test_execution
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- ENE Graph tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- Build a small semantic graph: runLemma connected to atoms. -/
|
|
def runLemma : Lemma := {
|
|
canonical := "run",
|
|
sig := [do_, move, someone],
|
|
pos := .verb
|
|
}
|
|
|
|
/-- Construct a graph with a lemma and its atomic decomposition. -/
|
|
def exampleGraph : Graph :=
|
|
let g0 := Graph.empty
|
|
let (g1, node_run) := g0.insertNode NodeType.lemma "run"
|
|
let (g2, node_do) := g1.insertNode NodeType.atom "do_"
|
|
let (g3, node_move) := g2.insertNode NodeType.atom "move"
|
|
let (g4, node_someone) := g3.insertNode NodeType.atom "someone"
|
|
let (g5, _) := g4.insertEdge node_run node_do EdgeType.has_atom EdgeClass.definitional
|
|
let (g6, _) := g5.insertEdge node_run node_move EdgeType.has_atom EdgeClass.definitional
|
|
let (g7, _) := g6.insertEdge node_run node_someone EdgeType.has_atom EdgeClass.definitional
|
|
g7
|
|
|
|
/-- The graph contains the run lemma. -/
|
|
theorem graph_contains_run :
|
|
∃ n ∈ exampleGraph.nodes, n.label = "run" ∧ n.type == NodeType.lemma := by
|
|
native_decide
|
|
|
|
/-- The run lemma has_atom move in the example graph. -/
|
|
theorem run_has_move :
|
|
∃ e ∈ exampleGraph.edges,
|
|
e.source.label = "run" ∧ e.type == EdgeType.has_atom ∧ e.target.label = "move" := by
|
|
native_decide
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Path tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A single-step atomic path in the example graph. -/
|
|
def step1 : AtomicStep := {
|
|
rewrite := {
|
|
fromNode := { id := 0, type := NodeType.lemma, label := "run", payload := none },
|
|
toNode := { id := 2, type := NodeType.atom, label := "move", payload := none },
|
|
viaEdge := { id := 1, source := { id := 0, type := NodeType.lemma, label := "run", payload := none }, target := { id := 2, type := NodeType.atom, label := "move", payload := none }, type := EdgeType.has_atom, edgeClass := EdgeClass.definitional, weight := 1.0, justified := true },
|
|
locallyAdmissible := true
|
|
},
|
|
stepId := 0
|
|
}
|
|
|
|
def examplePath : AtomicPath := { steps := [step1] }
|
|
|
|
/-- examplePath is lawful. -/
|
|
theorem example_path_is_lawful : examplePath.isLawful := by
|
|
unfold examplePath
|
|
unfold AtomicPath.isLawful
|
|
simp [step1]
|
|
|
|
/-- Length of examplePath is 1. -/
|
|
theorem example_path_length : examplePath.length = 1 := by
|
|
unfold examplePath
|
|
unfold AtomicPath.length
|
|
simp
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Witness / Constitution tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A well-formed witness for the run lemma node. -/
|
|
def exampleWitness : Witness := {
|
|
node := { id := 0, type := NodeType.lemma, label := "run", payload := none },
|
|
receipt := {
|
|
witnessId := 0,
|
|
provenance := WitnessProvenance.observation,
|
|
path := examplePath,
|
|
load := { intrinsic := 0.5, extraneous := 0.1, germane := 0.3, routing := 0.1, memory := 0.0, total := 1.0 },
|
|
timestamp := 0.0
|
|
},
|
|
preservedAtoms := [do_, move, someone],
|
|
lostAtoms := [],
|
|
accumulatedLoad := 1.0,
|
|
resultCapability := 0.5
|
|
}
|
|
|
|
/-- A fully grounded node, now including classified DNA/KPZ dynamics. -/
|
|
def fullGroundedness : Groundedness := {
|
|
atomicBasis := true,
|
|
lawfulReachability := true,
|
|
boundedLoad := true,
|
|
faithfulProjection := true,
|
|
evolutionAuditable := true,
|
|
universalDynamics := true,
|
|
scalingPreserved := true,
|
|
classMembershipVisible := true,
|
|
classifiedDynamics := dnaHybridizationKPZ
|
|
}
|
|
|
|
/-- fullGroundedness is habitable. -/
|
|
theorem full_groundedness_habitable : fullGroundedness.habitable = true := by
|
|
unfold Groundedness.habitable
|
|
simp [fullGroundedness, dnaHybridizationKPZ]
|
|
|
|
/-- The default constitution admits fullGroundedness. -/
|
|
theorem constitution_admits_full :
|
|
let c := ({} : UniverseConstitution)
|
|
c.admissible fullGroundedness := by
|
|
unfold UniverseConstitution.admissible
|
|
simp [fullGroundedness]
|
|
unfold projectionPreservesUniversality
|
|
unfold collapsePreservesUniversality
|
|
unfold evolutionPreservesUniversality
|
|
simp [dnaHybridizationKPZ]
|
|
|
|
/-- Constitutional law: projection preserves universality for DNA KPZ dynamics. -/
|
|
theorem dna_kpz_projection_preserved :
|
|
let c := ({} : UniverseConstitution)
|
|
let g := fullGroundedness
|
|
c.admissible g → projectionPreservesUniversality g.classifiedDynamics := by
|
|
intro c g ha
|
|
exact no_universality_loss_under_projection c g rfl ha
|
|
|
|
/-- Constitutional law: collapse preserves universality for DNA KPZ dynamics. -/
|
|
theorem dna_kpz_collapse_preserved :
|
|
let c := ({} : UniverseConstitution)
|
|
let g := fullGroundedness
|
|
c.admissible g → collapsePreservesUniversality g.classifiedDynamics := by
|
|
intro c g ha
|
|
exact no_universality_loss_under_collapse c g rfl ha
|
|
|
|
/-- Constitutional law: evolution preserves universality for DNA KPZ dynamics. -/
|
|
theorem dna_kpz_evolution_preserved :
|
|
let c := ({} : UniverseConstitution)
|
|
let g := fullGroundedness
|
|
c.admissible g → evolutionPreservesUniversality g.classifiedDynamics := by
|
|
intro c g ha
|
|
exact no_universality_loss_under_evolution c g rfl ha
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- DNA Substrate tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- The DNA hybridization object has all three semantic layers. -/
|
|
theorem dna_object_has_universal_semantics :
|
|
DNAUniversalSemantic.universalityClass ∈ exampleDNASemanticObject.universal := by
|
|
unfold exampleDNASemanticObject
|
|
simp
|
|
|
|
/-- DNA hybridization dynamics are classified as KPZ. -/
|
|
theorem dna_kpz_classification :
|
|
exampleDNASemanticObject.dynamics.universalityClass = UniversalityClass.kpz := by
|
|
unfold exampleDNASemanticObject
|
|
unfold dnaHybridizationKPZ
|
|
rfl
|
|
|
|
/-- DNA methylation ratchet is classified as Directed Percolation. -/
|
|
theorem dna_dp_classification :
|
|
dnaMethylationRatchet.universalityClass = UniversalityClass.directedPercolation := by
|
|
unfold dnaMethylationRatchet
|
|
rfl
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Decomposition tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A faithful decomposition of the run lemma (weights in Q16_16: 0x00010000 = 1.0). -/
|
|
def runDecomposition : AtomicDecomposition := {
|
|
source := runLemma,
|
|
atoms := [
|
|
{ atom := do_, weight := 0x00010000 },
|
|
{ atom := move, weight := 0x00010000 },
|
|
{ atom := someone, weight := 0x00010000 }
|
|
]
|
|
}
|
|
|
|
/-- The run decomposition is faithful. -/
|
|
theorem run_decomposition_faithful :
|
|
FaithfulDecomposition runLemma runDecomposition := by
|
|
unfold FaithfulDecomposition
|
|
unfold runLemma
|
|
unfold runDecomposition
|
|
unfold AtomicDecomposition.unweighted
|
|
constructor <;> rfl
|
|
|
|
/-- Faithful decomposition implies nonempty (when the signature is nonempty). -/
|
|
theorem run_decomposition_nonempty :
|
|
runDecomposition.nonempty := by
|
|
apply faithful_decomposition_nonempty runLemma runDecomposition
|
|
· exact run_decomposition_faithful
|
|
· unfold runLemma
|
|
simp
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Scalar Collapse tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A certified scalar collapse derived from the run decomposition and path. -/
|
|
def exampleScalarCollapse : ScalarCollapse := {
|
|
policy := {
|
|
name := "agentive_motion_scalar",
|
|
requiredInvariants := [
|
|
{ name := "agency", value := 1.0, tolerance := 0.1 },
|
|
{ name := "motion", value := 1.0, tolerance := 0.1 }
|
|
]
|
|
},
|
|
fields := [
|
|
{ name := "agency", invariant := { name := "agency", value := 1.0, tolerance := 0.1 }, certified := true },
|
|
{ name := "motion", invariant := { name := "motion", value := 1.0, tolerance := 0.1 }, certified := true }
|
|
],
|
|
sourceDecomposition := runDecomposition,
|
|
sourcePath := examplePath,
|
|
sourceLoad := { intrinsic := 0.5, extraneous := 0.1, germane := 0.3, routing := 0.1, memory := 0.0, total := 1.0 }
|
|
}
|
|
|
|
/-- The example scalar collapse is admissible. -/
|
|
theorem example_scalar_collapse_admissible :
|
|
ScalarAdmissible exampleScalarCollapse := by
|
|
unfold ScalarAdmissible
|
|
simp [exampleScalarCollapse, examplePath, runDecomposition]
|
|
constructor
|
|
· exact example_path_is_lawful
|
|
· constructor
|
|
· unfold AtomicDecomposition.nonempty
|
|
simp
|
|
· native_decide
|
|
|
|
/-- The collapse has atomic ancestry. -/
|
|
theorem example_scalar_has_atomic_ancestry :
|
|
ScalarAdmissible exampleScalarCollapse → exampleScalarCollapse.sourceDecomposition.nonempty := by
|
|
intro h
|
|
exact no_scalar_without_atomic_ancestry exampleScalarCollapse h
|
|
|
|
/-- The collapse has a lawful history. -/
|
|
theorem example_scalar_has_lawful_history :
|
|
ScalarAdmissible exampleScalarCollapse → exampleScalarCollapse.sourcePath.isLawful := by
|
|
intro h
|
|
exact no_scalar_without_lawful_history exampleScalarCollapse h
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Canonical adapter tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A simple observation schema for testing canonicalization. -/
|
|
def testSchema : RecordSchema := {
|
|
name := "Observation",
|
|
fields := [
|
|
{ name := "temperature", kind := FieldKind.q16_16 },
|
|
{ name := "confidence", kind := FieldKind.nat 8 }
|
|
]
|
|
}
|
|
|
|
/-- A canonicalized observation from source fields. -/
|
|
def canonicalObservation : NormalizeResult CanonicalBinaryForm :=
|
|
canonicalize testSchema [
|
|
{ name := "temperature", value := SourceValue.q16_16 (Q16_16.ofInt 273) },
|
|
{ name := "confidence", value := SourceValue.nat 255 }
|
|
]
|
|
|
|
/-- If canonicalization succeeds, the schema is preserved. -/
|
|
theorem canonical_observation_schema_preserved :
|
|
∀ cbf, canonicalObservation = .ok cbf → cbf.schema = testSchema := by
|
|
intros cbf h
|
|
unfold canonicalObservation at h
|
|
simp [canonicalize, testSchema] at h
|
|
cases h
|
|
rfl
|
|
|
|
/-- A filter rule that rejects emoji-like adversarial names. -/
|
|
def emojiFilter : FilterRule := {
|
|
name := "emoji_rejection",
|
|
predicate := λ f => f.name.contains "🎉",
|
|
relevance := Relevance.adversarial,
|
|
reason := "Emoji sequences can encode unintended computation paths"
|
|
}
|
|
|
|
/-- Filtered safe input passes cleanly. -/
|
|
def safeSource : List SourceField := [
|
|
{ name := "temperature", value := SourceValue.q16_16 (Q16_16.ofInt 273) }
|
|
]
|
|
|
|
theorem safe_input_passes_filter :
|
|
(applyFilters [emojiFilter] safeSource).safe = true := by
|
|
native_decide
|
|
|
|
/-- Determinism theorem instantiation: the canonical observation is canonical. -/
|
|
theorem canonical_observation_deterministic :
|
|
∀ cbf, canonicalObservation = .ok cbf → IsCanonical cbf := by
|
|
intros cbf h
|
|
exact canonicalize_is_deterministic testSchema [
|
|
{ name := "temperature", value := SourceValue.q16_16 (Q16_16.ofInt 273) },
|
|
{ name := "confidence", value := SourceValue.nat 255 }
|
|
] cbf h
|
|
|
|
/-- The revised schema is admissible for ENE core use. -/
|
|
theorem test_schema_core_admissible :
|
|
testSchema.coreAdmissible = true := by
|
|
native_decide
|
|
|
|
/-- Duplicate field names are rejected by the schema admissibility check. -/
|
|
theorem duplicate_field_names_rejected :
|
|
({ name := "BadSchema",
|
|
fields := [
|
|
{ name := "temperature", kind := FieldKind.q16_16 },
|
|
{ name := "temperature", kind := FieldKind.nat 8 }
|
|
] } : RecordSchema).coreAdmissible = false := by
|
|
native_decide
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Evolution tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A trivial evolution contract that always passes. -/
|
|
def trivialEvolutionContract : EvolutionContract := {
|
|
contractId := 0,
|
|
preservesAuditSurface := λ _ _ => true,
|
|
replayable := λ _ => true,
|
|
preservesConstitution := λ _ _ => true
|
|
}
|
|
|
|
/-- A trivial audit surface. -/
|
|
def trivialAuditSurface : AuditSurface := {
|
|
requiredNodes := [],
|
|
requiredEdges := [],
|
|
transparency := 1.0
|
|
}
|
|
|
|
/-- A valid self-modification. -/
|
|
def exampleModification : SelfModification := {
|
|
id := 0,
|
|
description := "Add run lemma",
|
|
priorState := Graph.empty,
|
|
postState := exampleGraph,
|
|
witness := exampleWitness,
|
|
timestamp := 0.0
|
|
}
|
|
|
|
/-- The example modification is admissible under the trivial contract. -/
|
|
theorem example_modification_admissible :
|
|
EvolutionAdmissible exampleModification trivialEvolutionContract trivialAuditSurface ({} : UniverseConstitution) := by
|
|
unfold EvolutionAdmissible
|
|
simp [trivialEvolutionContract]
|
|
|
|
/-- Auditability is preserved for admissible modifications. -/
|
|
theorem example_modification_auditability :
|
|
EvolutionAdmissible exampleModification trivialEvolutionContract trivialAuditSurface ({} : UniverseConstitution) →
|
|
trivialEvolutionContract.preservesAuditSurface exampleModification trivialAuditSurface = true := by
|
|
intro h
|
|
exact no_evolution_without_auditability exampleModification trivialEvolutionContract trivialAuditSurface ({} : UniverseConstitution) h
|
|
|
|
/-- An empty graph trivially has no active quarantine. -/
|
|
theorem empty_graph_no_quarantine :
|
|
Graph.noActiveQuarantine Graph.empty := by
|
|
unfold Graph.noActiveQuarantine Graph.empty
|
|
simp
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Grounded Universe Constitution tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- The default grounded universe constitution is fully satisfied by fullGroundedness. -/
|
|
theorem grounded_universe_admits_full :
|
|
let c := { semantic := ({} : UniverseConstitution) : GroundedUniverseConstitution }
|
|
FullyAdmissible c fullGroundedness (some exampleScalarCollapse) := by
|
|
unfold FullyAdmissible
|
|
simp [constitution_admits_full, example_scalar_collapse_admissible]
|
|
|
|
/-- Scalar certification is mandatory at the constitution level. -/
|
|
theorem constitution_requires_scalar_cert :
|
|
let c := { semantic := ({} : UniverseConstitution) : GroundedUniverseConstitution }
|
|
FullyAdmissible c fullGroundedness (some exampleScalarCollapse) → c.scalar = true := by
|
|
intro c h
|
|
exact scalar_certification_required c fullGroundedness (some exampleScalarCollapse) h
|
|
|
|
/-- Atomic grounding is enforced by the master constitution. -/
|
|
theorem master_constitution_enforces_atomic_basis :
|
|
let c := { semantic := ({} : UniverseConstitution) : GroundedUniverseConstitution }
|
|
FullyAdmissible c fullGroundedness (some exampleScalarCollapse) → fullGroundedness.atomicBasis = true := by
|
|
intro c h
|
|
exact no_object_without_semantic_grounding c fullGroundedness (some exampleScalarCollapse) h rfl
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Prohibition tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- The example graph does not contain active quarantine edges. -/
|
|
theorem example_graph_no_active_quarantine :
|
|
¬NotAllowed_ActiveQuarantine Graph.empty := by
|
|
apply no_quarantine_implies_prohibition
|
|
exact empty_graph_no_quarantine
|
|
|
|
/-- The run decomposition is not unfaithful. -/
|
|
theorem run_decomposition_not_unfaithful :
|
|
¬NotAllowed_UnfaithfulDecomposition runLemma runDecomposition := by
|
|
apply faithfulness_implies_prohibition
|
|
exact run_decomposition_faithful
|
|
|
|
/-- The example path is not unlawful. -/
|
|
theorem example_path_not_unlawful :
|
|
¬NotAllowed_UnlawfulPath examplePath := by
|
|
apply lawfulness_implies_prohibition
|
|
exact example_path_is_lawful
|
|
|
|
/-- The example witness does not lack provenance. -/
|
|
theorem example_witness_has_provenance :
|
|
¬NotAllowed_WitnessWithoutProvenance exampleWitness := by
|
|
apply provenance_implies_prohibition
|
|
simp [exampleWitness]
|
|
|
|
/-- The DNA KPZ dynamics do not lose universality under projection. -/
|
|
theorem dna_kpz_no_universality_loss_projection :
|
|
¬NotAllowed_UniversalityLossUnderProjection dnaHybridizationKPZ := by
|
|
apply universality_projection_implies_prohibition
|
|
unfold projectionPreservesUniversality
|
|
unfold dnaHybridizationKPZ
|
|
rfl
|
|
|
|
/-- The canonical observation is not nondeterministic. -/
|
|
theorem canonical_observation_not_nondeterministic :
|
|
∀ cbf, canonicalObservation = .ok cbf → ¬NotAllowed_NondeterministicCanonicalForm cbf := by
|
|
intros cbf h
|
|
apply determinism_implies_prohibition
|
|
exact canonicalize_is_deterministic testSchema [
|
|
{ name := "temperature", value := SourceValue.float64 273.15 },
|
|
{ name := "confidence", value := SourceValue.nat 255 }
|
|
] cbf h
|
|
|
|
/-- The example modification does not erase its audit trail. -/
|
|
theorem example_modification_no_epistemic_erasure :
|
|
¬NotAllowed_EpistemicSelfErasure exampleModification trivialEvolutionContract trivialAuditSurface := by
|
|
apply evolution_audit_implies_prohibition
|
|
exact example_modification_admissible
|
|
|
|
/-- The example scalar collapse does not lack atomic ancestry. -/
|
|
theorem example_scalar_not_missing_ancestry :
|
|
¬NotAllowed_ScalarWithoutAtomicAncestry exampleScalarCollapse := by
|
|
apply scalar_admissible_implies_ancestry_prohibition
|
|
exact example_scalar_collapse_admissible
|
|
|
|
/-- The example scalar collapse does not have negative source load. -/
|
|
theorem example_scalar_not_negative_load :
|
|
¬NotAllowed_ScalarWithNegativeLoad exampleScalarCollapse := by
|
|
unfold NotAllowed_ScalarWithNegativeLoad
|
|
unfold exampleScalarCollapse
|
|
native_decide
|
|
|
|
/-- The full constitutional object is not ungrounded. -/
|
|
theorem full_groundedness_not_ungrounded :
|
|
let c := { semantic := ({} : UniverseConstitution) : GroundedUniverseConstitution }
|
|
¬NotAllowed_FullyUngrounded c fullGroundedness (some exampleScalarCollapse) := by
|
|
intro c
|
|
apply full_admissibility_implies_prohibition
|
|
exact grounded_universe_admits_full
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- Diagnostic tests
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
/-- A trivially healthy report (empty graph, empty path). -/
|
|
def emptyReport : DiagnosticReport := {
|
|
knitPathExists := true,
|
|
knitCoverage := 1.0,
|
|
rigidPsd := true,
|
|
crntIsZero := true,
|
|
flavorPositive := true,
|
|
neuroOk := true,
|
|
neuroMode := "GRADIENT"
|
|
}
|
|
|
|
theorem empty_report_is_healthy : emptyReport.overallHealthy = true := by
|
|
unfold DiagnosticReport.overallHealthy
|
|
unfold DiagnosticReport.conditionsPassed
|
|
unfold DiagnosticReport.conditionsTotal
|
|
simp [emptyReport]
|