test(tests/lean/run): add structure instance example
This commit is contained in:
parent
50fe085374
commit
fed96c9e0b
1 changed files with 20 additions and 0 deletions
20
tests/lean/run/struct_inst_exprs2.lean
Normal file
20
tests/lean/run/struct_inst_exprs2.lean
Normal file
|
@ -0,0 +1,20 @@
|
|||
import data.nat.basic
|
||||
open nat
|
||||
|
||||
structure s1 (A : Type) :=
|
||||
(x : A) (y : A) (h : x = y)
|
||||
|
||||
structure s2 (A : Type) :=
|
||||
(mul : A → A → A) (one : A)
|
||||
|
||||
structure s3 (A : Type) extends s1 A, s2 A :=
|
||||
(mul_one : ∀ a : A, mul a one = a)
|
||||
|
||||
definition v1 : s1 nat := {| s1, x := 10, y := 10, h := rfl |}
|
||||
definition v2 : s2 nat := {| s2, mul := nat.add, one := zero |}
|
||||
definition v3 : s3 nat := {| s3, mul_one := add_zero, using v1, using v2 |}
|
||||
|
||||
example : s3.x v3 = 10 := rfl
|
||||
example : s3.y v3 = 10 := rfl
|
||||
example : s3.mul v3 = nat.add := rfl
|
||||
example : s3.one v3 = nat.zero := rfl
|
Loading…
Reference in a new issue