✅ True MK/NBG Theorems (Compile)
🛑 False MK/NBG Statements (Rejected)
HOL4 / Curry-Howard Kernel Rule:
Formulas of MK/NBG are TYPES (
formula F = ...;) ·
Proofs are TERMS (theorem T : F = ...;) ·
Compiling = Verifying the Proof
Loading Obelisk Propositions-as-Types Compiler...
obelisk>
Compiler & Type-Checker Status
Initializing kernel...
Why Formulas ≠ Proofs
1. Formula = Type (
Writing
2. Proof = Term (
To prove
NBGCompiler.Type):Writing
formula F = Set({x | x in x -> Bot}); defines a syntactically well-formed Type (even though it is mathematically false / uninhabited). Defining a formula never proves anything!2. Proof = Term (
NBGCompiler.Expr):To prove
F, you must construct a term e from kernel primitives whose inferred type equals F. For false MK/NBG formulas, the compiler deterministically rejects every candidate term.
Kernel Proof-Term Primitives
compr(x. Phi, z) : Comprehensionfn (h : A) => e : Implication Introe1 e2 : Modus Ponens (Elim)Lam (x : Sort) => e : Universal Introtapp(e, t) : Universal Elim (Set guard)pack(w, e, Sigma) : Existential Intro (Set guard)pair(a,b) / fst(e) / snd(e)inl(e,B) / inr(e,A) / abort(e,A)refl(t) / sym(e) / trans(e1,e2)heredity(x,y) / dunaev_proj(A,B)