pub enum EnvironmentEntry {
Axiom {
name: String,
level_params: Vec<String>,
ty: NodeRef,
},
Definition {
name: String,
level_params: Vec<String>,
ty: NodeRef,
body: NodeRef,
},
Theorem {
name: String,
level_params: Vec<String>,
ty: NodeRef,
proof: NodeRef,
},
Opaque {
name: String,
level_params: Vec<String>,
ty: NodeRef,
body: NodeRef,
},
Inductive {
level_params: Vec<String>,
types: Vec<InductiveType>,
},
Structure {
inductive: String,
projections: Vec<String>,
},
Quotient {
primitive: QuotientPrimitive,
level_params: Vec<String>,
ty: NodeRef,
equality: Option<String>,
},
}Expand description
One declaration of an environment, in dependency order.
Variants§
Axiom
An assumption: a name and a type, no proof. Subject to the reader’s assumption policy.
Definition
A transparent definition, δ-unfoldable. Recursors and structure projections are definitions: their bodies are type-checked like any other.
Theorem
A theorem. Its proof is carried and checked by both kernels, and the declaration is published as Lean publishes a theorem: conversion may unfold it at the lowest priority.
Opaque
A checked opaque value or proof. Its body is evidence and never unfolds in conversion.
Inductive
An inductive block (one member, or a mutual block) and its constructors.
Structure
Structure η for an earlier single-constructor inductive, through earlier projection definitions. Registered only after every projection is proved to compute.
Quotient
A certified quotient primitive. equality names the equality inductive lift respects.
Implementations§
Trait Implementations§
Source§impl Clone for EnvironmentEntry
impl Clone for EnvironmentEntry
Source§fn clone(&self) -> EnvironmentEntry
fn clone(&self) -> EnvironmentEntry
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more