pub struct Certificate {
pub proof_term: Term,
pub claimed_type: Term,
pub prelude_version: String,
}Expand description
A self-contained, re-checkable proof certificate.
proof_term is claimed to have type claimed_type in the standard prelude
context. Nothing else is trusted: the re-checker supplies its own axioms.
Fields§
§proof_term: TermThe proof (a lambda-calculus term).
claimed_type: TermThe proposition the proof claims to establish (a type).
prelude_version: StringThe axiom-set version this certificate was produced against.
Implementations§
Source§impl Certificate
impl Certificate
Sourcepub fn new(proof_term: Term, claimed_type: Term) -> Self
pub fn new(proof_term: Term, claimed_type: Term) -> Self
Bundle a proof term with the proposition it claims to prove.
Sourcepub fn axioms_used(&self) -> AxiomUsage
pub fn axioms_used(&self) -> AxiomUsage
The axioms this certificate’s proof actually rests on — our #print axioms.
Computed against the trusted base the certificate would be RE-CHECKED in, which is the only context whose answer is worth anything: a closure taken against the minting side’s environment reports what the prover believed, not what the verifier is being asked to accept.
Over the proof term AND the claimed type, because a certificate is both. An axiom named
in the theorem’s own STATEMENT is a real dependency — Π(h : Nonempty Nat). Eq Nat (Classical_choice Nat h) Zero rests on choice whatever the proof term looks like — and
Lean reports it: CollectAxioms visits a constant’s type as well as its value.
Trait Implementations§
Source§impl Clone for Certificate
impl Clone for Certificate
Source§fn clone(&self) -> Certificate
fn clone(&self) -> Certificate
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more