lean4-htt/tests/elab/sizeof1.lean.out.expected
Joachim Breitner 2398d2cc66
feat: no [defeq] attribute on sizeOf_spec lemmas (#13320)
This PR changes the auto-generated `sizeOf` definitions to be not
exposed and the `sizeOf_spec` theorem to be not marked `[defeq]`.
2026-04-08 11:10:50 +00:00

36 lines
2.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.

theorem TreePos.leaf.sizeOf_spec.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β] (a : α),
sizeOf (TreePos.leaf a) = 1 + sizeOf a :=
fun {α} {β} [SizeOf α] [SizeOf β] a => Eq.refl (1 + sizeOf a)
theorem TreePos.node.sizeOf_spec.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β]
(children : List (List (TreeNeg α β))), sizeOf (TreePos.node children) = 1 + sizeOf children :=
fun {α} {β} [SizeOf α] [SizeOf β] children => congrArg (Nat.add 1) (TreePos._sizeOf_3_eq children)
theorem TreePos._sizeOf_3_eq.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β]
(x : List (List (TreeNeg α β))), TreePos._sizeOf_3 x = sizeOf x :=
fun {α} {β} [SizeOf α] [SizeOf β] x =>
List.rec (Eq.refl (sizeOf []))
(fun head tail tail_ih =>
Eq.trans (congr (congrArg (fun x => (Nat.add 1 x).add) (TreePos._sizeOf_5_eq head)) tail_ih)
(Eq.symm (List.cons.sizeOf_spec head tail)))
x
theorem TreePos._sizeOf_4_eq.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β]
(x : List (List (TreePos α β))), TreePos._sizeOf_4 x = sizeOf x :=
fun {α} {β} [SizeOf α] [SizeOf β] x =>
List.rec (Eq.refl (sizeOf []))
(fun head tail tail_ih =>
Eq.trans (congr (congrArg (fun x => (Nat.add 1 x).add) (TreePos._sizeOf_6_eq head)) tail_ih)
(Eq.symm (List.cons.sizeOf_spec head tail)))
x
theorem TreePos._sizeOf_5_eq.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β]
(x : List (TreeNeg α β)), TreePos._sizeOf_5 x = sizeOf x :=
fun {α} {β} [SizeOf α] [SizeOf β] x =>
List.rec (Eq.refl (sizeOf []))
(fun head tail tail_ih =>
Eq.trans (congrArg (1 + sizeOf head).add tail_ih) (Eq.symm (List.cons.sizeOf_spec head tail)))
x
theorem TreePos._sizeOf_6_eq.{u, v} : ∀ {α : Type u} {β : Type v} [inst : SizeOf α] [inst_1 : SizeOf β]
(x : List (TreePos α β)), TreePos._sizeOf_6 x = sizeOf x :=
fun {α} {β} [SizeOf α] [SizeOf β] x =>
List.rec (Eq.refl (sizeOf []))
(fun head tail tail_ih =>
Eq.trans (congrArg (1 + sizeOf head).add tail_ih) (Eq.symm (List.cons.sizeOf_spec head tail)))
x