pub enum PremiseVariables {
Schematic,
Local,
}Expand description
What a FREE VARIABLE in a knowledge-base equation means.
The chainer serves two callers with two different answers, and the answer is a property of where the knowledge base CAME FROM, not of the search:
- Equations handed straight to
BackwardChainer::add_axiomare a REWRITE SYSTEM. A Peano definition —Add(Zero, n) = n,Add(Succ k, n) = Succ(Add(k, n))— says nothing at all unless it stands for every instance; read as facts about one fixedkand one fixedn, the pair does not compute1 + 1. Nothing downstream re-checks such a search, and this is what a standalone chainer is for, so it is the default. - Premises of a THEOREM are KERNEL HYPOTHESES. The trust door registers each as a
declaration
h : P nwhose type mentionsnas a context LOCAL — Lean’svariable (n : Int)— andverify::close_over_context_localscloses the finished term over exactly those. An INSTANCE of such a hypothesis is a proposition the context does not carry, so no certificate can cite it. A layer whose success is re-checked must therefore read premises AS STATED: the step is not merely uncertifiable, it is not licensed.
Saying which reading is in force is what keeps the honesty invariant STRUCTURAL. The alternative — letting the search build the step and catching it downstream — is the one answer that is wrong either way: a tactic reports a proof and the trust door refuses it.
Variants§
Schematic
An equation stands for ALL its instances (a rewrite schema). The default.
Local
An equation is about the fixed, arbitrary values its free variables name, so only the equation AS STATED is available. Set by every caller whose result the kernel re-checks.
Trait Implementations§
Source§impl Clone for PremiseVariables
impl Clone for PremiseVariables
Source§fn clone(&self) -> PremiseVariables
fn clone(&self) -> PremiseVariables
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PremiseVariables
impl Debug for PremiseVariables
Source§impl Default for PremiseVariables
impl Default for PremiseVariables
Source§fn default() -> PremiseVariables
fn default() -> PremiseVariables
Returns the “default value” for a type. Read more
Source§impl PartialEq for PremiseVariables
impl PartialEq for PremiseVariables
impl Copy for PremiseVariables
impl Eq for PremiseVariables
impl StructuralPartialEq for PremiseVariables
Auto Trait Implementations§
impl Freeze for PremiseVariables
impl RefUnwindSafe for PremiseVariables
impl Send for PremiseVariables
impl Sync for PremiseVariables
impl Unpin for PremiseVariables
impl UnsafeUnpin for PremiseVariables
impl UnwindSafe for PremiseVariables
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