funProp #
this file defines environment extension for funProp
Name of the origin.
Instances For
Get the expression specified by origin.
Instances For
Pretty print FunProp.Origin.
Instances For
Pretty print FunProp.Origin. Returns string unlike ppOrigin.
Instances For
Get origin of the head function.
Instances For
Default names to be considered reducible by fun_prop
Instances For
fun_prop configuration
- maxTransitionDepth : ℕ
Maximum number of transitions between function properties. For example inferring continuity from differentiability and then differentiability from smoothness (
ContDiff ℝ ∞) requiresmaxTransitionDepth = 2. The default value of one expects that transition theorems are transitively closed e.g. there is a transition theorem that infers continuity directly from smoothness.Setting
maxTransitionDepthto zero will disable all transition theorems. This can be very useful whenfun_propshould fail quickly. For example when usingfun_propas discharger insimp. - maxSteps : ℕ
Maximum number of steps
fun_propcan take.
Instances For
fun_prop context
- config : Config
fun_propconfig - constToUnfold : Std.TreeSet Lean.Name Lean.Name.quickCmp
Name to unfold
- disch : Lean.Expr → Lean.MetaM (Option Lean.Expr)
Custom discharger to satisfy theorem hypotheses.
- transitionDepth : ℕ
current transition depth
Instances For
General theorem about a function property used for transition and morphism theorems
- funPropName : Lean.Name
function property name
- thmName : Lean.Name
theorem name
- keys : List (Lean.Meta.RefinedDiscrTree.Key × Lean.Meta.RefinedDiscrTree.LazyEntry)
discrimination tree keys used to index this theorem
- priority : ℕ
priority
Instances For
Structure holding transition or morphism theorems for fun_prop tactic.
- theorems : Lean.Meta.RefinedDiscrTree GeneralTheorem
Discrimination tree indexing theorems.
Instances For
fun_prop state
- cache : Lean.Meta.Simp.Cache
Simp's cache is used as the
fun_proptactic is designed to be used inside of simp and utilize its cache. It holds successful goals. - failureCache : Lean.ExprSet
Cache storing failed goals such that they are not tried again.
- numSteps : ℕ
Count the number of steps and stop when maxSteps is reached.
- msgLog : List String
Log progress and failures messages that should be displayed to the user at the end.
- morTheorems : GeneralTheorems
RefinedDiscrTreeis lazy, so we store the partially evaluated tree. - transitionTheorems : GeneralTheorems
RefinedDiscrTreeis lazy, so we store the partially evaluated tree.
Instances For
Increase depth
Instances For
Monad to run fun_prop tactic in.
Instances For
Result of funProp, it is a proof of function property P f
- proof : Lean.Expr
Instances For
Default names to unfold
Instances For
Get predicate on names indicating whether they should be unfolded.
Instances For
Increase heartbeat, throws error when maxSteps was reached
Instances For
Increase transition depth. Return none if maximum transition depth has been reached.
Instances For
Log error message that will displayed to the user at the end.
Messages are logged only when transitionDepth = 0 i.e. when fun_prop is not trying to infer
function property like continuity from another property like differentiability.
The main reason is that if the user forgets to add a continuity theorem for function foo then
fun_prop should report that there is a continuity theorem for foo missing. If we would log
messages transitionDepth > 0 then user will see messages saying that there is a missing theorem
for differentiability, smoothness, ... for foo.