equal
deleted
inserted
replaced
101 | _ => true) |
101 | _ => true) |
102 in |
102 in |
103 case redex of |
103 case redex of |
104 (* case pi o (f x) == (pi o f) (pi o x) *) |
104 (* case pi o (f x) == (pi o f) (pi o x) *) |
105 (Const("Nominal.perm", |
105 (Const("Nominal.perm", |
106 Type("fun",[Type("List.list",[Type(@{type_name "*"},[Type(n,_),_])]),_])) $ pi $ (f $ x)) => |
106 Type("fun",[Type("List.list",[Type(@{type_name Product_Type.prod},[Type(n,_),_])]),_])) $ pi $ (f $ x)) => |
107 (if (applicable_app f) then |
107 (if (applicable_app f) then |
108 let |
108 let |
109 val name = Long_Name.base_name n |
109 val name = Long_Name.base_name n |
110 val at_inst = PureThy.get_thm sg ("at_" ^ name ^ "_inst") |
110 val at_inst = PureThy.get_thm sg ("at_" ^ name ^ "_inst") |
111 val pt_inst = PureThy.get_thm sg ("pt_" ^ name ^ "_inst") |
111 val pt_inst = PureThy.get_thm sg ("pt_" ^ name ^ "_inst") |
188 (* folding the definition *) |
188 (* folding the definition *) |
189 |
189 |
190 fun perm_compose_simproc' sg ss redex = |
190 fun perm_compose_simproc' sg ss redex = |
191 (case redex of |
191 (case redex of |
192 (Const ("Nominal.perm", Type ("fun", [Type ("List.list", |
192 (Const ("Nominal.perm", Type ("fun", [Type ("List.list", |
193 [Type (@{type_name "*"}, [T as Type (tname,_),_])]),_])) $ pi1 $ (Const ("Nominal.perm", |
193 [Type (@{type_name Product_Type.prod}, [T as Type (tname,_),_])]),_])) $ pi1 $ (Const ("Nominal.perm", |
194 Type ("fun", [Type ("List.list", [Type (@{type_name "*"}, [U as Type (uname,_),_])]),_])) $ |
194 Type ("fun", [Type ("List.list", [Type (@{type_name Product_Type.prod}, [U as Type (uname,_),_])]),_])) $ |
195 pi2 $ t)) => |
195 pi2 $ t)) => |
196 let |
196 let |
197 val tname' = Long_Name.base_name tname |
197 val tname' = Long_Name.base_name tname |
198 val uname' = Long_Name.base_name uname |
198 val uname' = Long_Name.base_name uname |
199 in |
199 in |