Merge branch 'fix_another_sessions' into 'master'
[why3.git] / tests / test-settheory.why
blob43ffb802a496b30f840a82cec793bf5d5bfcc5be
2 theory TestOverriding
4   use settheory.Relation
5   use settheory.InverseDomRan
6   use settheory.Overriding
7   use settheory.Function
9   constant f : rel int int = singleton (3,4)
10   constant g : rel int int = f <+ (singleton (5,6))
11   constant h : rel int int = g <+ (singleton (3,7))
13   goal testdom1: mem 3 (dom g)
14   goal testdom2: mem 3 (dom h)
16   goal testapply1: apply f 3 = 4
18   goal testapply2: apply g 3 = 4
19   goal testapply3: apply g 5 = 6
21   goal testapply4: apply h 3 = 7
22   goal testapply5: apply h 5 = 6
24   goal testapply_smoke1: apply h 3 = 8
25   goal testapply_smoke2: apply h 5 = 9
27 end
29 theory TestCompose
31   use settheory.Relation
32   use settheory.InverseDomRan
33   use settheory.Composition
34   use settheory.Function
36   constant f : rel int int = singleton (3,4)
37   constant g : rel int int = singleton (4,6)
38   constant h : rel int int = semicolon f g
40   use settheory.Interval
42   constant fun_int_int : set (rel int int) = integer +-> integer
45   lemma f_is_fun : mem f fun_int_int
47   lemma g_is_fun : mem g fun_int_int
49   lemma h_is_fun : mem h fun_int_int
52   goal test1: mem (apply h 3) (Interval.mk 0 10)
54   goal test2: 0 <= apply h 3 <= 10
56   goal test3: apply h 3 = 6
59 end