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