One Proof, Many Lenses
Like the Rosetta Stone enabled translation between scripts, our lens bridges transform verified proofs through multiple mathematical representations. Each lens preserves semantic content while revealing different structural aspects.
Reentry.idempotent
Applying the nucleus twice equals applying it once
Primordial calculus with mark/unmark
Intuitionistic lattice of fixed points
High-dimensional embeddings
Geometric algebra with projections
Dependency structure as directed edges
Topological nerve constructions
Possible worlds semantics
DAG reachability closure
Attribute closure operators
Contradictions without explosion
Verified Lens Contracts
Each lens transformation is backed by a machine-verified round-trip contract. The decode/encode pair guarantees lossless translation: what goes in comes out unchanged.
structure RoundTrip (R : Reentry α) (Obj : Type v) where
encode : R.Omega → Obj
decode : Obj → R.Omega
round : ∀ a, decode (encode a) = a
def interiorized (C : RoundTrip R Obj) : Obj → α :=
fun x => R (C.decode x)
theorem interiorized_id (C : RoundTrip R Obj) (a : R.Omega) :
interiorized C (C.encode a) = R a := by simpVerified Compilation: Proofs to Programs
The Rosetta principle extends beyond mathematical lenses to executable code. Via the Curry-Howard correspondence, proofs are programs and propositions are types. Our verified compilation pipeline transforms Lean specifications into executable C while preserving semantic correctness at each stage.
All four columns collapse to a single structure in the Heyting core Omega_R
EndToEndNatSpec funName paramName leanF termCompiled C function produces identical results to Lean specification for all inputs
runCFunFrag fn n = evalClosed (app t n)Each compilation stage preserves semantic equivalence
/-- Compile a closed nat -> nat LambdaIR term into MiniC. -/
def compileNatFun (funName paramName : String)
(t : LambdaIR.Term [] (Ty.arrow Ty.nat Ty.nat))
: Except String Fun :=
match t with
| .lam body => .ok {
name := funName
params := [paramName]
body := compileNatBody paramName body }
| _ => .error "expected lambda"
/-- Specification: compiled code equals Lean semantics. -/
def NatFunSpec (funName paramName : String)
(t : LambdaIR.Term [] (Ty.arrow Ty.nat Ty.nat)) : Prop :=
forall fn, compileNatFun funName paramName t = Except.ok fn ->
forall n, runNatFunFrag fn paramName n =
some (LambdaIR.evalClosed (Term.app t (Term.constNat n)))Cross-ATP Proof Translation
The Comparison Nucleus provides a verified semantic core for translating proofs between theorem provers. Via Galois connections between complete lattices, we establish round-trip identities that preserve logical content across ATP boundaries.
dec (enc a) = aTranslation to target and back yields the original proof
R := g ∘ f : L → LNucleus on source lattice with idempotent, extensive, meet-preserving
/-- Core data: a Galois connection f ⊣ g between lattices. -/
structure CompSpec (L : Type u) (Ω : Type v)
[CompleteLattice L] [CompleteLattice Ω] where
f : L → Ω
g : Ω → L
gc : GaloisConnection f g
/-- Fixed points of R := g ∘ f form the translation core. -/
def ΩR (S : CompSpec L Ω) : Type u := {x : L // act S x = x}
/-- Round-trip identity: decode ∘ encode = id on fixed points. -/
theorem RT1 (S : CompSpec L Ω) :
(fun a : ΩR S => dec S (enc S a)) = idHuman / AI Collaborative Theorem Proving
Bridge the gap between human intuition and machine precision. Our proof2vec embedding system extracts proof structures into vector space, enabling AI-assisted proof search, automated lemma suggestion, and human-in-the-loop verification workflows.
Explore Collaborative Proving→