simproc for Nat.primeFactorsList #
Note that since norm_num can only produce numerals,
we can't register this as a norm_num extension.
A proof of the partial computation of primeFactorsList.
Asserts that l is a sorted list of primes multiplying to n and lower bounded by a prime p.
Equations
Instances For
The argument explicitness in this section is chosen to make only the numerals in the factors list appear in the proof term.
theorem Mathlib.Meta.Simproc.FactorsHelper.cons_of_le {n m : ℕ} (a : ℕ) {b : ℕ} {l : List ℕ} (h₁ : NormNum.IsNat (b * m) n) (h₂ : a ≤ b) (h₃ : b.minFac = b) (H : FactorsHelper m b l) :
FactorsHelper n a (b :: l)
theorem Mathlib.Meta.Simproc.FactorsHelper.cons {n m a : ℕ} (b : ℕ) {l : List ℕ} (h₁ : NormNum.IsNat (b * m) n) (h₂ : a.blt b = true) (h₃ : NormNum.IsNat b.minFac b) (H : FactorsHelper m b l) :
FactorsHelper n a (b :: l)
theorem Mathlib.Meta.Simproc.FactorsHelper.singleton (n : ℕ) {a : ℕ} (h₁ : a.blt n = true) (h₂ : NormNum.IsNat n.minFac n) :
FactorsHelper n a [n]
theorem Mathlib.Meta.Simproc.FactorsHelper.cons_self {n m : ℕ} (a : ℕ) {l : List ℕ} (h : NormNum.IsNat (a * m) n) (H : FactorsHelper m a l) :
FactorsHelper n a (a :: l)
theorem Mathlib.Meta.Simproc.FactorsHelper.primeFactorsList_eq {n : ℕ} {l : List ℕ} (H : FactorsHelper n 2 l) :
def Mathlib.Meta.Simproc.evalPrimeFactorsList {en enl : Q(ℕ)} (hn : Q(NormNum.IsNat «$en» «$enl»)) :
Lean.MetaM ((l : Q(List ℕ)) × Q(«$en».primeFactorsList = «$l»))
Given a natural number n, returns (l, ⊢ Nat.primeFactorsList n = l).
Equations
- One or more equations did not get rendered due to their size.
Instances For
A simproc for terms of the form Nat.primeFactorsList (OfNat.ofNat n).
Equations
- One or more equations did not get rendered due to their size.