summaryrefslogtreecommitdiff
path: root/omega/examples/basics
blob: 9f0728d159bd28cded65a00f1a0b0572e88e7cb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#
# Some examples from the documentation for the Omega Calculator
# This is the input for figures 2 and 3.
#

R := { [i] -> [i'] : 1 <= i,i' <= 10 && i' = i+1 };
R;
inverse R;
domain R;
range R;
R compose R;
R+;             # closure of R = R union (R compose R) union (R compose R ...
complement R;
S := {[i] : 5 <= i <= 25};
S;
R(S);           # apply R to S
R \ S;          # restrict domain of R to S
R / S;          # restrict range of R to S
(R\S) union (R/S);
(R\S) intersection (R/S);
(R/S) - (R\S);
S*S;            # cross product 
D := S - {[9:16:2]} - {[17:19]};
D;
T :=  { [i] : 1 <= i <= 11 & exists (a : i = 2a) };
T;
Hull T;
Hull D;
codegen D;
codegen {[i,j] : 1 <= i+j,j <= 10};