Documentation

Lean.Util.Recognizers

@[inline]
Equations
@[inline]
Equations
  • e.app1? fName = if e.isAppOfArity fName 1 = true then some e.appArg! else none
@[inline]
Equations
  • e.app2? fName = if e.isAppOfArity fName 2 = true then some (e.appFn!.appArg!, e.appArg!) else none
@[inline]
Equations
  • e.app3? fName = if e.isAppOfArity fName 3 = true then some (e.appFn!.appFn!.appArg!, e.appFn!.appArg!, e.appArg!) else none
@[inline]
Equations
  • e.app4? fName = if e.isAppOfArity fName 4 = true then some (e.appFn!.appFn!.appFn!.appArg!, e.appFn!.appFn!.appArg!, e.appFn!.appArg!, e.appArg!) else none
@[inline]
Equations
  • p.eq? = p.app3? `Eq
@[inline]
Equations
  • p.ne? = p.app3? `Ne
@[inline]
Equations
  • p.iff? = p.app2? `Iff
@[inline]
Equations
  • p.eqOrIff? = match p.app3? `Eq with | some (fst, lhs, rhs) => some (lhs, rhs) | x => p.iff?
@[inline]
Equations
  • p.not? = p.app1? `Not
@[inline]
Equations
  • p.notNot? = match p.not? with | some p => p.not? | none => none
@[inline]
Equations
  • p.and? = p.app2? `And
@[inline]
Equations
  • p.heq? = p.app4? `HEq
Equations
  • e.natAdd? = e.app2? `Nat.add
@[inline]
Equations
Equations
  • e.isEq = e.isAppOfArity `Eq 3
Equations
  • e.isHEq = e.isAppOfArity `HEq 4
Equations
  • e.isIte = e.isAppOfArity `ite 5
Equations
  • e.isDIte = e.isAppOfArity `dite 5
Equations
  • e.arrayLit? = if e.isAppOfArity' `List.toArray 2 = true then e.appArg!'.listLit? else none

Recognize α × β

Equations
  • e.prod? = e.app2? `Prod