Documentation

Aesop.Tree.Data

Node IDs #

structure Aesop.GoalId :
Equations
Equations
  • { toNat := n }.succ = { toNat := n + 1 }
Equations
Equations

Rule Application IDs #

structure Aesop.RappId :
Equations
  • { toNat := n }.succ = { toNat := n + 1 }
Equations
Equations
Equations

Iterations #

The Tree #

At each point during the search, every node of the tree (goal, rapp or mvar cluster) is in one of these states:

  • proven: the node is proven.
  • unprovable: the node is unprovable, i.e. it will never be proven regardless of any future expansions that might be performed.
  • unknown: neither of the above.

Every node starts in the unknown state and may later become either proven or unprovable. After this, the state does not change any more.

Equations
  • One or more equations did not get rendered due to their size.

A refinement of the NodeState, distinguishing between goals proven during normalisation and goals proven by a child rule application.

Equations
  • One or more equations did not get rendered due to their size.

A goal G can be added to the tree for three reasons:

  1. G was produced by its parent rule as a subgoal. This is the most common reason.
  2. G was copied because it contains some metavariables which were assigned by its parent rule. In this case, we record goal of which G is a copy. We also record the representative of the equivalence class of goals which are copies of each other. E.g. if goal 1 is copied to goal 2 and goal 2 is copied to goal 3, they are all part of the equivalence class with representative 1.
structure Aesop.GoalData (Rapp MVarCluster : Type) :
instance Aesop.instNonemptyGoalData {Rapp✝ MVarCluster✝ : Type} [Nonempty MVarCluster✝] :
Nonempty (GoalData Rapp✝ MVarCluster✝)
structure Aesop.MVarClusterData (Goal Rapp : Type) :
instance Aesop.instInhabitedMVarClusterData {a✝ a✝¹ : Type} :
Equations
structure Aesop.RappData (Goal MVarCluster : Type) :
instance Aesop.instNonemptyRappData {Goal✝ : Type} [Nonempty Goal✝] {MVarCluster✝ : Type} :
Nonempty (RappData Goal✝ MVarCluster✝)
structure Aesop.TreeSpec :
Equations
  • One or more equations did not get rendered due to their size.
@[implemented_by Aesop.treeImpl]
@[reducible, inline]
Equations
@[reducible, inline]
Equations
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
def Aesop.Goal.setId (id : GoalId) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setChildren (children : Array RappRef) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setDepth (depth : Nat) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setIsIrrelevant (isIrrelevant : Bool) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setIsForcedUnprovable (isForcedUnprovable : Bool) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setPreNormGoal (preNormGoal : Lean.MVarId) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setForwardState (forwardState : ForwardState) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setSuccessProbability (successProbability : Percent) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setAddedInIteration (addedInIteration : Iteration) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setLastExpandedInIteration (lastExpandedInIteration : Iteration) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setUnsafeRulesSelected (unsafeRulesSelected : Bool) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setUnsafeQueue (unsafeQueue : UnsafeQueue) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Goal.setState (state : GoalState) (g : Goal) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
def Aesop.Rapp.setId (id : RappId) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setParent (parent : GoalRef) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setState (state : NodeState) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setIsIrrelevant (isIrrelevant : Bool) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setAppliedRule (appliedRule : RegularRule) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setOriginalSubgoals (originalSubgoals : Array Lean.MVarId) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Aesop.Rapp.setSuccessProbability (successProbability : Percent) (r : Rapp) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
Equations

Miscellaneous Queries #

@[inline]
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
def Aesop.Rapp.foldSubgoalsM {m : TypeType} {σ : Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (init : σ) (f : σGoalRefm σ) (r : Rapp) :
m σ
Equations
  • One or more equations did not get rendered due to their size.
def Aesop.Rapp.forSubgoalsM {m : TypeType} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (f : GoalRefm Unit) (r : Rapp) :
Equations
Equations
Equations
Equations