src/ZF/Resid/Residuals.thy
changeset 1155 928a16e02f9f
parent 1048 5ba0314f8214
child 1401 0c439768f45c
equal deleted inserted replaced
1154:bc295e3dc078 1155:928a16e02f9f
    18 
    18 
    19 inductive
    19 inductive
    20   domains       "Sres" <= "redexes*redexes*redexes"
    20   domains       "Sres" <= "redexes*redexes*redexes"
    21   intrs
    21   intrs
    22     Res_Var	"n:nat ==> residuals(Var(n),Var(n),Var(n))"
    22     Res_Var	"n:nat ==> residuals(Var(n),Var(n),Var(n))"
    23     Res_Fun	"[|residuals(u,v,w)|]==>   \
    23     Res_Fun	"[|residuals(u,v,w)|]==>   
    24 \		     residuals(Fun(u),Fun(v),Fun(w))"
    24 		     residuals(Fun(u),Fun(v),Fun(w))"
    25     Res_App	"[|residuals(u1,v1,w1);   \
    25     Res_App	"[|residuals(u1,v1,w1);   
    26 \		   residuals(u2,v2,w2); b:bool|]==>   \
    26 		   residuals(u2,v2,w2); b:bool|]==>   
    27 \		 residuals(App(b,u1,u2),App(0,v1,v2),App(b,w1,w2))"
    27 		 residuals(App(b,u1,u2),App(0,v1,v2),App(b,w1,w2))"
    28     Res_redex	"[|residuals(u1,v1,w1);   \
    28     Res_redex	"[|residuals(u1,v1,w1);   
    29 \		   residuals(u2,v2,w2); b:bool|]==>   \
    29 		   residuals(u2,v2,w2); b:bool|]==>   
    30 \		 residuals(App(b,Fun(u1),u2),App(1,Fun(v1),v2),w2/w1)"
    30 		 residuals(App(b,Fun(u1),u2),App(1,Fun(v1),v2),w2/w1)"
    31   type_intrs	"[subst_type]@nat_typechecks@redexes.intrs@bool_typechecks"
    31   type_intrs	"[subst_type]@nat_typechecks@redexes.intrs@bool_typechecks"
    32 
    32 
    33 rules
    33 rules
    34   res_func_def  "u |> v == THE w.residuals(u,v,w)"
    34   res_func_def  "u |> v == THE w.residuals(u,v,w)"
    35 end
    35 end