lean4-htt/tests/lean/run/ind_whnf.lean
Joachim Breitner c517f8fc9e
chore: resurrect #8978, #8992, #8973 from bad merge (#9641)
This PR resurrects the changes from #8978, #8992, #8973 which were
accidentally removed by #8996.

Fixes #8962.

---------

Co-authored-by: Wojciech Rozowski <wojciech@lean-fro.org>
2025-07-31 08:04:40 +00:00

59 lines
1.2 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

inductive Expr : id Type
| var : Nat → Expr
| app : String → List Expr → Expr
partial def Expr.fold (f : Nat → αα) : Expr → αα
| var n, a => f n a
| app _ as, a => as.foldl (init := a) fun a e => fold f e a
def Expr.isVar : Expr → Bool
| var _ => true
| _ => false
inductive Lst (α : Type u) : id (id (Type u))
| nil : Lst α
| cons : α → Lst α → Lst α
protected def Lst.append : Lst α → Lst α → Lst α
| nil, bs => bs
| cons a as, bs => cons a (Lst.append as bs)
/--
info: inductive Lst.{u} : Type u → id (id (Type u))
number of parameters: 1
constructors:
Lst.nil : {α : Type u} → Lst α
Lst.cons : {α : Type u} → α → Lst α → Lst α
-/
#guard_msgs in
#print Lst
def Set (α : Type u) : Type u := α → Prop
mutual
inductive Even : Set Nat
| zero : Even 0
| succ : Odd n → Even n
inductive Odd : Set Nat
| succ : Even n → Odd n
end
/--
info: inductive Even : Set Nat
number of parameters: 0
constructors:
Even.zero : Even 0
Even.succ : ∀ {n : Nat}, Odd n → Even n
-/
#guard_msgs in
#print Even
/--
info: inductive Odd : Set Nat
number of parameters: 0
constructors:
Odd.succ : ∀ {n : Nat}, Even n → Odd n
-/
#guard_msgs in
#print Odd