def | switch |
|
def | switch_case |
|
def | switch_default |
|
def | switch_done |
|
def | case |
|
def | case_default |
|
def | case_pair |
|
def | case_inl |
== InjCase(value; x. body(x); _. cont(contvalue,contvalue)) |
def | case_inr |
== InjCase(value; _. cont(contvalue,contvalue); x. body(x)) |
def | case_cons |
== Case of value; nil cont(contvalue,contvalue) ; hd.tl body(hd;tl) |
def | case_nil |
== Case of value; nil body ; hd.tl cont(contvalue,contvalue) |
def | case_it |
|
def | case_bind |
|
def | case_pattern1 |
== x/x2,x1. == x2/x2@0,x1@0. == InjCase(if x2@0="a"Atominl(*); inr(*) fi == InjCase; x1/x2@1,x1@1. == InjCase; InjCase(if x1@1=1 inl(*) ; inr(*) fi ; body(x1@0;x2@1); cont(z,z)) == InjCase; cont(z,z)) |
def | pattern1 |
|
def | case_pattern2 |
== x/x2,x1. == InjCase(x1 == InjCase; x1@0. x1@0/x2@0,x1@1. == InjCase; x1@0. x2@0/x2@0,x1@2. == InjCase; x1@0. InjCase(if x2@0="a"Atominl(*); inr(*) fi == InjCase; x1@0. InjCase; x1@1/x2@1,x1@1. == InjCase; x1@0. InjCase; InjCase(if x1@1=1 inl(*) ; inr(*) fi == InjCase; x1@0. InjCase; InjCase; body(x2;x1@2;x2@1) == InjCase; x1@0. InjCase; InjCase; cont(z)) == InjCase; x1@0. InjCase; cont(z)) == InjCase; _. cont(z)) |
def | pattern2 |
|
def | union1 |
|
def | case_union1_term1 |
|
def | union1_term1 |
|
def | case_union1_term2 |
== InjCase(x1; _. cont(z,z); x2. InjCase(x2; x2@0. body(x2@0); _. cont(z,z))) |
def | union1_term2 |
|
def | case_union1_term3 |
== InjCase(x1; _. cont(z,z); x2. InjCase(x2; _. cont(z,z); x2@0. body(x2@0))) |
def | union1_term3 |
|
def | enum1 |
|
def | enum1_switch |
== Switch(value) == Case enum1_el1 => el1 == Case enum1_el2 => el2 == Case enum1_el3 => el3 == EndSwitch |
def | case_enum1_el1 |
== InjCase(if x=0 inl(*) ; inr(*) fi ; body; cont(z,z)) |
def | enum1_el1 |
|
def | case_enum1_el2 |
== InjCase(if x=1 inl(*) ; inr(*) fi ; body; cont(z,z)) |
def | enum1_el2 |
|
def | case_enum1_el3 |
== InjCase(if x=2 inl(*) ; inr(*) fi ; body; cont(z,z)) |
def | enum1_el3 |
|
COM | enum1_start | ------ begin enum1 ------ |
THM | enum1_sq |
|
THM | eq_enum1_eq_true_intro |
|
THM | eq_enum1_eq_false_intro |
|
THM | enum1_cases |
|
COM | enum1_finish | ------ end enum1 ------ |
def | module1_type |
(recursive) |
def | module1_tag |
|
def | module1_data |
|
def | case_module1 |
|
def | module1 |
|