LeanPool.Duality.Common #
theorem
Finset.subtype_univ_sum_eq_subtype_univ_sum
{α : Type u_1}
{β : Type u_2}
{p q : α → Prop}
(hpq : p = q)
[Fintype { a : α // p a }]
[Fintype { a : α // q a }]
[AddCommMonoid β]
{f : { a : α // p a } → β}
{g : { a : α // q a } → β}
(hfg : ∀ (a : α) (hpa : p a) (hqa : q a), f ⟨a, hpa⟩ = g ⟨a, hqa⟩)
:
Writing ↓t is slightly more general than writing Function.const _ t.
Equations
- «term↓_» = Lean.ParserDescr.node `«term↓_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "↓") (Lean.ParserDescr.cat `term 1023))
Instances For
The left-to-right direction of ↔.
Equations
- «term_.→» = Lean.ParserDescr.trailingNode `«term_.→» 1024 1024 (Lean.ParserDescr.symbol ".→")
Instances For
The right-to-left direction of ↔.
Equations
- «term_.←» = Lean.ParserDescr.trailingNode `«term_.←» 1024 1024 (Lean.ParserDescr.symbol ".←")
Instances For
theorem
le_of_nneg_add
{α : Type u_1}
[AddCommGroup α]
[PartialOrder α]
[IsOrderedAddMonoid α]
{a b c : α}
(habc : a + b = c)
(ha : 0 ≤ a)
:
change h to t rewrites the hypothesis h to the definitionally equal type t.
Equations
- One or more equations did not get rendered due to their size.
Instances For
aeply t is shorthand for intro <;> apply t <;> aesop, useful for proving universally
quantified goals where each instance is dispatched by aesop after applying t.
Equations
- tacticAeply_ = Lean.ParserDescr.node `tacticAeply_ 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.nonReservedSymbol "aeply" false) (Lean.ParserDescr.cat `term 0))