36 lines
1.2 KiB
Text
36 lines
1.2 KiB
Text
structure foo :=
|
||
(x : nat) (y : nat) (z : bool)
|
||
|
||
#check let s := {foo . x := let v1 := 10 + 10 + 20 + 30 + 40 + 10 + 20 + 30 + 40 + 50 + 10 + 10, v2 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20, v3 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20, v4 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20 in v1 + v2 + v3 + v4, y := 20, z := tt} in s^.x + s^.y
|
||
|
||
set_option pp.structure_instances_qualifier true
|
||
|
||
#check let s := {foo . x := let v1 := 10 + 10 + 20 + 30 + 40 + 10 + 20 + 30 + 40 + 50 + 10 + 10, v2 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20, v3 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20, v4 := 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 20 in v1 + v2 + v3 + v4, y := 20, z := tt} in s^.x + s^.y
|
||
|
||
set_option pp.structure_instances false
|
||
|
||
#check {foo . x := 10, y := 20, z := ff}
|
||
|
||
set_option pp.structure_instances true
|
||
|
||
#check {foo . x := 10, y := 20, z := ff}
|
||
|
||
set_option pp.structure_instances_qualifier false
|
||
|
||
#check {foo . x := 10, y := 20, z := ff}
|
||
|
||
#check {foo . x := 10, y := 20, z := ff}^.x
|
||
|
||
#check (1, 2).1
|
||
|
||
constant boo : nat → nat → nat × nat
|
||
|
||
#check (boo 1 1)^.fst
|
||
|
||
structure F :=
|
||
(fn : nat → nat → nat)
|
||
(v : nat)
|
||
|
||
constant h : nat → F
|
||
|
||
#check (h 0)^.fn 10 20
|