@[inline]
Equations
- Lean.Expr.const? e = match e with | Lean.Expr.const n us a => some (n, us) | x => none
@[inline]
Equations
- Lean.Expr.app1? e fName = if Lean.Expr.isAppOfArity e fName 1 = true then some (Lean.Expr.appArg! e) else none
@[inline]
Equations
- Lean.Expr.app2? e fName = if Lean.Expr.isAppOfArity e fName 2 = true then some (Lean.Expr.appArg! (Lean.Expr.appFn! e), Lean.Expr.appArg! e) else none
@[inline]
Equations
- Lean.Expr.eq? p = Lean.Expr.app3? p `Eq
@[inline]
Equations
- Lean.Expr.ne? p = Lean.Expr.app3? p `Ne
@[inline]
Equations
- Lean.Expr.iff? p = Lean.Expr.app2? p `Iff
@[inline]
Equations
- Lean.Expr.not? p = Lean.Expr.app1? p `Not
@[inline]
Equations
- Lean.Expr.notNot? p = match Lean.Expr.not? p with | some p => Lean.Expr.not? p | none => none
@[inline]
Equations
- Lean.Expr.and? p = Lean.Expr.app2? p `And
@[inline]
Equations
- Lean.Expr.heq? p = Lean.Expr.app4? p `HEq
Equations
- Lean.Expr.natAdd? e = Lean.Expr.app2? e `Nat.add
@[inline]
Equations
- Lean.Expr.arrow? _fun_discr = match _fun_discr with | Lean.Expr.forallE a α β a_1 => if Lean.Expr.hasLooseBVars β = true then none else some (α, β) | x => none
Equations
- Lean.Expr.isEq e = Lean.Expr.isAppOfArity e `Eq 3
Equations
- Lean.Expr.isHEq e = Lean.Expr.isAppOfArity e `HEq 4
Equations
- Lean.Expr.isIte e = Lean.Expr.isAppOfArity e `ite 5
Equations
- Lean.Expr.isDIte e = Lean.Expr.isAppOfArity e `dite 5
Equations
Equations
- Lean.Expr.arrayLit? e = if Lean.Expr.isAppOfArity' e `List.toArray 2 = true then Lean.Expr.listLit? (Lean.Expr.appArg!' e) else none
Recognize α × β
Equations
- Lean.Expr.prod? e = Lean.Expr.app2? e `Prod
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Expr.isConstructorApp env e = Option.isSome (Lean.Expr.isConstructorApp? env e)
Equations
- One or more equations did not get rendered due to their size.