fun_prop
environment extensions storing theorems for fun_prop
#
Tag for one of the 5 basic lambda theorems, that also hold extra data for composition theorem
- id: Mathlib.Meta.FunProp.LambdaTheoremArgs
Identity theorem e.g.
Continuous fun x => x
- const: Mathlib.Meta.FunProp.LambdaTheoremArgs
Constant theorem e.g.
Continuous fun x => y
- apply: Mathlib.Meta.FunProp.LambdaTheoremArgs
Apply theorem e.g.
Continuous fun (f : (x : X) → Y x => f x)
- comp: ℕ → ℕ → Mathlib.Meta.FunProp.LambdaTheoremArgs
Composition theorem e.g.
Continuous f → Continuous g → Continuous fun x => f (g x)
The numbers
fArgId
andgArgId
store the argument index forf
andg
in the composition theorem. - pi: Mathlib.Meta.FunProp.LambdaTheoremArgs
Pi theorem e.g.
∀ y, Continuous (f · y) → Continuous fun x y => f x y
Instances For
Tag for one of the 5 basic lambda theorems
- id: Mathlib.Meta.FunProp.LambdaTheoremType
Identity theorem e.g.
Continuous fun x => x
- const: Mathlib.Meta.FunProp.LambdaTheoremType
Constant theorem e.g.
Continuous fun x => y
- apply: Mathlib.Meta.FunProp.LambdaTheoremType
Apply theorem e.g.
Continuous fun (f : (x : X) → Y x => f x)
- comp: Mathlib.Meta.FunProp.LambdaTheoremType
Composition theorem e.g.
Continuous f → Continuous g → Continuous fun x => f (g x)
- pi: Mathlib.Meta.FunProp.LambdaTheoremType
Pi theorem e.g.
∀ y, Continuous (f · y) → Continuous fun x y => f x y
Instances For
Convert LambdaTheoremArgs
to LambdaTheoremType
.
Equations
- Mathlib.Meta.FunProp.LambdaTheoremArgs.id.type = Mathlib.Meta.FunProp.LambdaTheoremType.id
- Mathlib.Meta.FunProp.LambdaTheoremArgs.const.type = Mathlib.Meta.FunProp.LambdaTheoremType.const
- (Mathlib.Meta.FunProp.LambdaTheoremArgs.comp fArgId gArgId).type = Mathlib.Meta.FunProp.LambdaTheoremType.comp
- Mathlib.Meta.FunProp.LambdaTheoremArgs.apply.type = Mathlib.Meta.FunProp.LambdaTheoremType.apply
- Mathlib.Meta.FunProp.LambdaTheoremArgs.pi.type = Mathlib.Meta.FunProp.LambdaTheoremType.pi
Instances For
Decides whether f
is a function corresponding to one of the lambda theorems.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structure holding information about lambda theorem.
- funPropName : Lean.Name
Name of function property
- thmName : Lean.Name
Name of lambda theorem
- thmArgs : Mathlib.Meta.FunProp.LambdaTheoremArgs
Type and important argument of the theorem.
Instances For
Equations
- Mathlib.Meta.FunProp.instInhabitedLambdaTheorem = { default := { funPropName := default, thmName := default, thmArgs := default } }
Collection of lambda theorems
- theorems : Std.HashMap (Lean.Name × Mathlib.Meta.FunProp.LambdaTheoremType) (Array Mathlib.Meta.FunProp.LambdaTheorem)
map: function property name × theorem type → lambda theorem
Instances For
Equations
- Mathlib.Meta.FunProp.instInhabitedLambdaTheorems = { default := { theorems := default } }
Return proof of lambda theorem
Equations
- thm.getProof = Lean.Meta.mkConstWithFreshMVarLevels thm.thmName
Instances For
Environment extension storing lambda theorems.
Equations
Instances For
Environment extension storing all lambda theorems.
Get lambda theorems for particular function property funPropName
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Function theorems are stated in uncurried or compositional form.
uncurried
theorem Continuous_add : Continuous (fun x => x.1 + x.2)
compositional
theorem Continuous_add (hf : Continuous f) (hg : Continuous g) : Continuous (fun x => (f x) + (g x))
- uncurried: Mathlib.Meta.FunProp.TheoremForm
- comp: Mathlib.Meta.FunProp.TheoremForm
Instances For
TheoremForm to string
Equations
- One or more equations did not get rendered due to their size.
theorem about specific function (either declared constant or free variable)
- funPropName : Lean.Name
function property name
- thmOrigin : Mathlib.Meta.FunProp.Origin
theorem name
- funOrigin : Mathlib.Meta.FunProp.Origin
function name
array of argument indices about which this theorem is about
- appliedArgs : ℕ
total number of arguments applied to the function
- priority : ℕ
priority
form of the theorem, see documentation of TheoremForm
Instances For
Equations
- One or more equations did not get rendered due to their size.
- theorems : Batteries.RBMap Lean.Name (Batteries.RBMap Lean.Name (Array Mathlib.Meta.FunProp.FunctionTheorem) compare) compare
map: function name → function property → function theorem
Instances For
Equations
- Mathlib.Meta.FunProp.instInhabitedFunctionTheorems = { default := { theorems := default } }
return proof of function theorem
Equations
- thm.getProof = match thm.thmOrigin with | Mathlib.Meta.FunProp.Origin.decl name => Lean.Meta.mkConstWithFreshMVarLevels name | Mathlib.Meta.FunProp.Origin.fvar id => pure (Lean.Expr.fvar id)
Instances For
Equations
Instances For
Extension storing all function theorems.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Mathlib.Meta.FunProp.instInhabitedGeneralTheorem = { default := { funPropName := default, thmName := default, keys := default, priority := default } }
Get proof of a theorem.
Equations
- thm.getProof = Lean.Meta.mkConstWithFreshMVarLevels thm.thmName
Instances For
Instances For
Equations
- Mathlib.Meta.FunProp.instInhabitedGeneralTheorems = { default := { theorems := default } }
Equations
Instances For
There are four types of theorems:
- lam - theorem about basic lambda calculus terms
- function - theorem about a specific function(declared or free variable) in specific arguments
- mor - special theorems talking about bundled morphisms/DFunLike.coe
- transition - theorems inferring one function property from another
Examples:
- lam
theorem Continuous_id : Continuous fun x => x
theorem Continuous_comp (hf : Continuous f) (hg : Continuous g) : Continuous fun x => f (g x)
- function
theorem Continuous_add : Continuous (fun x => x.1 + x.2)
theorem Continuous_add (hf : Continuous f) (hg : Continuous g) :
Continuous (fun x => (f x) + (g x))
- mor - the head of function body has to be ``DFunLike.code
theorem ContDiff.clm_apply {f : E → F →L[𝕜] G} {g : E → F}
(hf : ContDiff 𝕜 n f) (hg : ContDiff 𝕜 n g) :
ContDiff 𝕜 n fun x => (f x) (g x)
theorem clm_linear {f : E →L[𝕜] F} : IsLinearMap 𝕜 f
- transition - the conclusion has to be in the form
P f
wheref
is a free variable
theorem linear_is_continuous [FiniteDimensional ℝ E] {f : E → F} (hf : IsLinearMap 𝕜 f) :
Continuous f
- lam: Mathlib.Meta.FunProp.LambdaTheorem → Mathlib.Meta.FunProp.Theorem
- function: Mathlib.Meta.FunProp.FunctionTheorem → Mathlib.Meta.FunProp.Theorem
- mor: Mathlib.Meta.FunProp.GeneralTheorem → Mathlib.Meta.FunProp.Theorem
- transition: Mathlib.Meta.FunProp.GeneralTheorem → Mathlib.Meta.FunProp.Theorem
Instances For
For a theorem declaration declName
return fun_prop
theorem. It correctly detects which
type of theorem it is.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Register theorem declName
with fun_prop
.
Equations
- One or more equations did not get rendered due to their size.