pub enum CoqDecl {
Show 14 variants
Definition {
name: String,
params: Vec<(String, CoqTerm)>,
ty: Option<CoqTerm>,
body: CoqTerm,
},
Theorem {
name: String,
params: Vec<(String, CoqTerm)>,
ty: CoqTerm,
proof: CoqProof,
},
Lemma {
name: String,
params: Vec<(String, CoqTerm)>,
ty: CoqTerm,
proof: CoqProof,
},
Axiom {
name: String,
ty: CoqTerm,
},
Inductive(CoqInductive),
Fixpoint(Vec<CoqFixPoint>),
RecordDecl(CoqRecord),
ClassDecl(CoqClass),
Instance(CoqInstance),
Require(String),
OpenScope(String),
Notation(String, CoqTerm),
Comment(String),
Raw(String),
}Expand description
Top-level Coq declaration.
Variants§
Definition
Definition f (params) : T := body.
Theorem
Theorem name (params) : T. Proof. ... Qed.
Lemma
Lemma name (params) : T. Proof. ... Qed.
Axiom
Axiom name : T.
Inductive(CoqInductive)
Inductive name params : Sort := constructors.
Fixpoint(Vec<CoqFixPoint>)
Fixpoint f params : T := body. (possibly mutual)
RecordDecl(CoqRecord)
Record name params : Sort := { fields }.
ClassDecl(CoqClass)
Class name params := { methods }.
Instance(CoqInstance)
Instance name : class := { methods }.
Require(String)
Require Import module.
OpenScope(String)
Open Scope scope_name.
Notation(String, CoqTerm)
Notation "..." := term.
Comment(String)
A raw comment line
Raw(String)
A raw verbatim declaration (fallback)
Implementations§
Trait Implementations§
impl StructuralPartialEq for CoqDecl
Auto Trait Implementations§
impl Freeze for CoqDecl
impl RefUnwindSafe for CoqDecl
impl Send for CoqDecl
impl Sync for CoqDecl
impl Unpin for CoqDecl
impl UnsafeUnpin for CoqDecl
impl UnwindSafe for CoqDecl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more