# MATH illustrate pairs
[hear] (define cons (? x / ? y / ? f / f (x) (y)));

[hear] (define car
(? pair /
pair (? x / ? y / x)));

[hear] (define cdr
(? pair /
pair (? x / ? y / y)));

[hear] (assign x (cons 0 4) / = (car / x) 0);

[hear] (assign x (cons 0 4) / = (cdr / x) 4);

[hear] (assign x (cons 6 2) / = (car / x) 6);

[hear] (assign x (cons 6 2) / = (cdr / x) 2);

[hear] (assign x (cons 3 9) / = (car / x) 3);

[hear] (assign x (cons 3 9) / = (cdr / x) 9);

[hear] (assign x (cons 7 / cons 10 2) /
= (car / x) 7);

[hear] (assign x (cons 7 / cons 10 2) /
= (car / cdr / x) 10);

[hear] (assign x (cons 7 / cons 10 2) /
= (cdr / cdr / x) 2);

[hear] (assign x (cons 1 / cons 15 17) /
= (car / x) 1);

[hear] (assign x (cons 1 / cons 15 17) /
= (car / cdr / x) 15);

[hear] (assign x (cons 1 / cons 15 17) /
= (cdr / cdr / x) 17);

[hear] (assign x (cons 8 / cons 14 9) /
= (car / x) 8);

[hear] (assign x (cons 8 / cons 14 9) /
= (car / cdr / x) 14);

[hear] (assign x (cons 8 / cons 14 9) /
= (cdr / cdr / x) 9);

[hear] (assign
x
(cons 3 /
cons 0 /
cons 2 /
cons 4 1) /
and (= 3 / car / x) /
and (= 0 / car / cdr / x) /
and (= 2 / car / cdr / cdr / x) /
and (= 4 /
car /
cdr /
cdr /
cdr /
x)
(= 1 /
cdr /
cdr /
cdr /
cdr /
x));