enat_to_nat
#
This file implements the enat_to_nat
tactic that shifts ENat
s in the context to Nat
.
Implementation details #
The implementation follows these steps:
- Apply the
cases
tactic to eachENat
variable, producing two goals: one where the variable is⊤
, and one where it is a finite natural number. - Simplify arithmetic expressions involving infinities, making (in)equalities either trivial
or free of infinities. This step uses the
enat_to_nat_top
simp set. - Translate the remaining goals from
ENat
toNat
using theenat_to_nat_coe
simp set.
Finds the first ENat
in the context and applies the cases
tactic to it.
Then simplifies expressions involving ⊤
using the enat_to_nat_top
simp set.
Equations
- Mathlib.Tactic.ENatToNat.tacticCases_first_enat = Lean.ParserDescr.node `Mathlib.Tactic.ENatToNat.tacticCases_first_enat 1024 (Lean.ParserDescr.nonReservedSymbol "cases_first_enat" false)
Instances For
enat_to_nat
shifts all ENat
s in the context to Nat
, rewriting propositions about them.
A typical use case is enat_to_nat; omega
.
Equations
- Mathlib.Tactic.ENatToNat.tacticEnat_to_nat = Lean.ParserDescr.node `Mathlib.Tactic.ENatToNat.tacticEnat_to_nat 1024 (Lean.ParserDescr.nonReservedSymbol "enat_to_nat" false)