96 | Arctic_mat_carrier nat "('f, arctic mat) lpoly_interL" |
96 | Arctic_mat_carrier nat "('f, arctic mat) lpoly_interL" |
97 | Arctic_rat_mat_carrier nat "('f, rat arctic_delta mat) lpoly_interL" |
97 | Arctic_rat_mat_carrier nat "('f, rat arctic_delta mat) lpoly_interL" |
98 | RPO "'f status_prec_repr" "'f afs_list" |
98 | RPO "'f status_prec_repr" "'f afs_list" |
99 | KBO "'f prec_weight_repr" "'f afs_list" |
99 | KBO "'f prec_weight_repr" "'f afs_list" |
100 |
100 |
101 datatype_new list_order_type = MS_Ext | Max_Ext | Min_Ext | Dms_Ext |
101 datatype_new (discs_sels) list_order_type = MS_Ext | Max_Ext | Min_Ext | Dms_Ext |
102 type_synonym 'f scnp_af = "(('f \<times> nat) \<times> (nat \<times> nat) list) list" |
102 type_synonym 'f scnp_af = "(('f \<times> nat) \<times> (nat \<times> nat) list) list" |
103 |
103 |
104 datatype_new 'f root_redtriple_impl = SCNP list_order_type "'f scnp_af" "'f redtriple_impl" |
104 datatype_new (discs_sels) 'f root_redtriple_impl = SCNP list_order_type "'f scnp_af" "'f redtriple_impl" |
105 |
105 |
106 type_synonym 'f sig_map_list = "(('f \<times> nat) \<times> 'f list) list" |
106 type_synonym 'f sig_map_list = "(('f \<times> nat) \<times> 'f list) list" |
107 type_synonym ('f, 'v) uncurry_info = "'f \<times> 'f sig_map_list \<times> ('f, 'v) rules \<times> ('f, 'v) rules" |
107 type_synonym ('f, 'v) uncurry_info = "'f \<times> 'f sig_map_list \<times> ('f, 'v) rules \<times> ('f, 'v) rules" |
108 |
108 |
109 datatype_new arithFun = |
109 datatype_new (discs_sels) arithFun = |
110 Arg nat |
110 Arg nat |
111 | Const nat |
111 | Const nat |
112 | Sum "arithFun list" |
112 | Sum "arithFun list" |
113 | Max "arithFun list" |
113 | Max "arithFun list" |
114 | Min "arithFun list" |
114 | Min "arithFun list" |
115 | Prod "arithFun list" |
115 | Prod "arithFun list" |
116 | IfEqual arithFun arithFun arithFun arithFun |
116 | IfEqual arithFun arithFun arithFun arithFun |
117 |
117 |
118 datatype_new 'f sl_inter = SL_Inter nat "(('f \<times> nat) \<times> arithFun) list" |
118 datatype_new (discs_sels) 'f sl_inter = SL_Inter nat "(('f \<times> nat) \<times> arithFun) list" |
119 datatype_new ('f, 'v) sl_variant = |
119 datatype_new (discs_sels) ('f, 'v) sl_variant = |
120 Rootlab "('f \<times> nat) option" |
120 Rootlab "('f \<times> nat) option" |
121 | Finitelab "'f sl_inter" |
121 | Finitelab "'f sl_inter" |
122 | QuasiFinitelab "'f sl_inter" 'v |
122 | QuasiFinitelab "'f sl_inter" 'v |
123 |
123 |
124 type_synonym ('f, 'v) crit_pair_joins = "(('f, 'v) term \<times> ('f, 'v) rseq \<times> ('f, 'v) term \<times> ('f, 'v) rseq) list" |
124 type_synonym ('f, 'v) crit_pair_joins = "(('f, 'v) term \<times> ('f, 'v) rseq \<times> ('f, 'v) term \<times> ('f, 'v) rseq) list" |
125 |
125 |
126 datatype_new 'f join_info = Guided "('f, string) crit_pair_joins" | Join_NF | Join_BFS nat |
126 datatype_new (discs_sels) 'f join_info = Guided "('f, string) crit_pair_joins" | Join_NF | Join_BFS nat |
127 |
127 |
128 type_synonym unknown_info = string |
128 type_synonym unknown_info = string |
129 |
129 |
130 type_synonym dummy_prf = unit |
130 type_synonym dummy_prf = unit |
131 |
131 |
132 datatype_new ('f, 'v) complex_constant_removal_prf = Complex_Constant_Removal_Proof |
132 datatype_new (discs_sels) ('f, 'v) complex_constant_removal_prf = Complex_Constant_Removal_Proof |
133 "('f, 'v) term" |
133 "('f, 'v) term" |
134 "(('f, 'v) rule \<times> ('f, 'v) rule) list" |
134 "(('f, 'v) rule \<times> ('f, 'v) rule) list" |
135 |
135 |
136 datatype_new ('f, 'v) cond_constraint = |
136 datatype_new (discs_sels) ('f, 'v) cond_constraint = |
137 CC_cond bool "('f, 'v) rule" |
137 CC_cond bool "('f, 'v) rule" |
138 | CC_rewr "('f, 'v) term" "('f, 'v) term" |
138 | CC_rewr "('f, 'v) term" "('f, 'v) term" |
139 | CC_impl "('f, 'v) cond_constraint list" "('f, 'v) cond_constraint" |
139 | CC_impl "('f, 'v) cond_constraint list" "('f, 'v) cond_constraint" |
140 | CC_all 'v "('f, 'v) cond_constraint" |
140 | CC_all 'v "('f, 'v) cond_constraint" |
141 |
141 |
142 type_synonym ('f, 'v, 'w) gsubstL = "('v \<times> ('f, 'w) term) list" |
142 type_synonym ('f, 'v, 'w) gsubstL = "('v \<times> ('f, 'w) term) list" |
143 type_synonym ('f, 'v) substL = "('f, 'v, 'v) gsubstL" |
143 type_synonym ('f, 'v) substL = "('f, 'v, 'v) gsubstL" |
144 |
144 |
145 datatype_new ('f, 'v) cond_constraint_prf = |
145 datatype_new (discs_sels) ('f, 'v) cond_constraint_prf = |
146 Final |
146 Final |
147 | Delete_Condition "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
147 | Delete_Condition "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
148 | Different_Constructor "('f, 'v) cond_constraint" |
148 | Different_Constructor "('f, 'v) cond_constraint" |
149 | Same_Constructor "('f, 'v) cond_constraint" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
149 | Same_Constructor "('f, 'v) cond_constraint" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
150 | Variable_Equation 'v "('f, 'v) term" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
150 | Variable_Equation 'v "('f, 'v) term" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
151 | Funarg_Into_Var "('f, 'v) cond_constraint" nat 'v "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
151 | Funarg_Into_Var "('f, 'v) cond_constraint" nat 'v "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
152 | Simplify_Condition "('f, 'v) cond_constraint" "('f, 'v) substL" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
152 | Simplify_Condition "('f, 'v) cond_constraint" "('f, 'v) substL" "('f, 'v) cond_constraint" "('f, 'v) cond_constraint_prf" |
153 | Induction "('f, 'v) cond_constraint" "('f, 'v) cond_constraint list" "(('f, 'v) rule \<times> (('f, 'v) term \<times> 'v list) list \<times> ('f, 'v) cond_constraint \<times> ('f, 'v) cond_constraint_prf) list" |
153 | Induction "('f, 'v) cond_constraint" "('f, 'v) cond_constraint list" "(('f, 'v) rule \<times> (('f, 'v) term \<times> 'v list) list \<times> ('f, 'v) cond_constraint \<times> ('f, 'v) cond_constraint_prf) list" |
154 |
154 |
155 datatype_new ('f, 'v) cond_red_pair_prf = |
155 datatype_new (discs_sels) ('f, 'v) cond_red_pair_prf = |
156 Cond_Red_Pair_Prf |
156 Cond_Red_Pair_Prf |
157 'f "(('f, 'v) cond_constraint \<times> ('f, 'v) rules \<times> ('f, 'v) cond_constraint_prf) list" nat nat |
157 'f "(('f, 'v) cond_constraint \<times> ('f, 'v) rules \<times> ('f, 'v) cond_constraint_prf) list" nat nat |
158 |
158 |
159 datatype_new ('q, 'f) ta_rule = TA_rule 'f "'q list" 'q ("_ _ \<rightarrow> _") |
159 datatype_new (discs_sels) ('q, 'f) ta_rule = TA_rule 'f "'q list" 'q ("_ _ \<rightarrow> _") |
160 datatype_new ('q, 'f) tree_automaton = Tree_Automaton "'q list" "('q, 'f) ta_rule list" "('q \<times> 'q) list" |
160 datatype_new (discs_sels) ('q, 'f) tree_automaton = Tree_Automaton "'q list" "('q, 'f) ta_rule list" "('q \<times> 'q) list" |
161 datatype_new 'q ta_relation = |
161 datatype_new (discs_sels) 'q ta_relation = |
162 Decision_Proc |
162 Decision_Proc |
163 | Id_Relation |
163 | Id_Relation |
164 | Some_Relation "('q \<times> 'q) list" |
164 | Some_Relation "('q \<times> 'q) list" |
165 |
165 |
166 datatype_new boundstype = Roof | Match |
166 datatype_new (discs_sels) boundstype = Roof | Match |
167 datatype_new ('f, 'q) bounds_info = Bounds_Info boundstype nat "'q list" "('q, 'f \<times> nat) tree_automaton" "'q ta_relation" |
167 datatype_new (discs_sels) ('f, 'q) bounds_info = Bounds_Info boundstype nat "'q list" "('q, 'f \<times> nat) tree_automaton" "'q ta_relation" |
168 |
168 |
169 datatype_new ('f, 'v) pat_eqv_prf = |
169 datatype_new (discs_sels) ('f, 'v) pat_eqv_prf = |
170 Pat_Dom_Renaming "('f, 'v) substL" |
170 Pat_Dom_Renaming "('f, 'v) substL" |
171 | Pat_Irrelevant "('f, 'v) substL" "('f, 'v) substL" |
171 | Pat_Irrelevant "('f, 'v) substL" "('f, 'v) substL" |
172 | Pat_Simplify "('f, 'v) substL" "('f, 'v) substL" |
172 | Pat_Simplify "('f, 'v) substL" "('f, 'v) substL" |
173 |
173 |
174 datatype_new pat_rule_pos = Pat_Base | Pat_Pump | Pat_Close |
174 datatype_new (discs_sels) pat_rule_pos = Pat_Base | Pat_Pump | Pat_Close |
175 |
175 |
176 datatype_new ('f, 'v) pat_rule_prf = |
176 datatype_new (discs_sels) ('f, 'v) pat_rule_prf = |
177 Pat_OrigRule "('f, 'v) rule" bool |
177 Pat_OrigRule "('f, 'v) rule" bool |
178 | Pat_InitPump "('f, 'v) pat_rule_prf" "('f, 'v) substL" "('f, 'v) substL" |
178 | Pat_InitPump "('f, 'v) pat_rule_prf" "('f, 'v) substL" "('f, 'v) substL" |
179 | Pat_InitPumpCtxt "('f, 'v) pat_rule_prf" "('f, 'v) substL" pos 'v |
179 | Pat_InitPumpCtxt "('f, 'v) pat_rule_prf" "('f, 'v) substL" pos 'v |
180 | Pat_Equiv "('f, 'v) pat_rule_prf" bool "('f, 'v) pat_eqv_prf" |
180 | Pat_Equiv "('f, 'v) pat_rule_prf" bool "('f, 'v) pat_eqv_prf" |
181 | Pat_Narrow "('f, 'v) pat_rule_prf" "('f, 'v) pat_rule_prf" pos |
181 | Pat_Narrow "('f, 'v) pat_rule_prf" "('f, 'v) pat_rule_prf" pos |
182 | Pat_Inst "('f, 'v) pat_rule_prf" "('f, 'v) substL" pat_rule_pos |
182 | Pat_Inst "('f, 'v) pat_rule_prf" "('f, 'v) substL" pat_rule_pos |
183 | Pat_Rewr "('f, 'v) pat_rule_prf" "('f, 'v) term \<times> ('f, 'v) rseq" pat_rule_pos 'v |
183 | Pat_Rewr "('f, 'v) pat_rule_prf" "('f, 'v) term \<times> ('f, 'v) rseq" pat_rule_pos 'v |
184 | Pat_Exp_Sigma "('f, 'v) pat_rule_prf" nat |
184 | Pat_Exp_Sigma "('f, 'v) pat_rule_prf" nat |
185 |
185 |
186 datatype_new ('f, 'v) non_loop_prf = |
186 datatype_new (discs_sels) ('f, 'v) non_loop_prf = |
187 Non_Loop_Prf "('f, 'v) pat_rule_prf" "('f, 'v) substL" "('f, 'v) substL" nat nat pos |
187 Non_Loop_Prf "('f, 'v) pat_rule_prf" "('f, 'v) substL" "('f, 'v) substL" nat nat pos |
188 |
188 |
189 datatype_new ('f, 'l, 'v) problem = |
189 datatype_new (discs_sels) ('f, 'l, 'v) problem = |
190 SN_TRS "('f, 'l, 'v) qreltrsLL" |
190 SN_TRS "('f, 'l, 'v) qreltrsLL" |
191 | SN_FP_TRS "('f, 'l, 'v) fptrsLL" |
191 | SN_FP_TRS "('f, 'l, 'v) fptrsLL" |
192 | Finite_DPP "('f, 'l, 'v) dppLL" |
192 | Finite_DPP "('f, 'l, 'v) dppLL" |
193 | Unknown_Problem unknown_info |
193 | Unknown_Problem unknown_info |
194 | Not_SN_TRS "('f, 'l, 'v) qtrsLL" |
194 | Not_SN_TRS "('f, 'l, 'v) qtrsLL" |
208 | Not_SN_FP_assm_proof "('f, 'l, 'v) fptrsLL" 'd |
208 | Not_SN_FP_assm_proof "('f, 'l, 'v) fptrsLL" 'd |
209 | Unknown_assm_proof unknown_info 'e |
209 | Unknown_assm_proof unknown_info 'e |
210 |
210 |
211 type_synonym ('f, 'l, 'v, 'a, 'b, 'c, 'd) assm_proof = "('f, 'l, 'v, 'a, 'b, 'c, dummy_prf, 'd) generic_assm_proof" |
211 type_synonym ('f, 'l, 'v, 'a, 'b, 'c, 'd) assm_proof = "('f, 'l, 'v, 'a, 'b, 'c, dummy_prf, 'd) generic_assm_proof" |
212 |
212 |
213 datatype_new ('f, 'l, 'v) assm = |
213 datatype_new (discs_sels) ('f, 'l, 'v) assm = |
214 SN_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) qreltrsLL" |
214 SN_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) qreltrsLL" |
215 | SN_FP_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) fptrsLL" |
215 | SN_FP_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) fptrsLL" |
216 | Finite_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) dppLL" |
216 | Finite_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) dppLL" |
217 | Unknown_assm "('f, 'l, 'v) problem list" unknown_info |
217 | Unknown_assm "('f, 'l, 'v) problem list" unknown_info |
218 | Not_SN_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) qtrsLL" |
218 | Not_SN_assm "('f, 'l, 'v) problem list" "('f, 'l, 'v) qtrsLL" |