src/Tools/isac/Build_Isac.thy
author wneuper <Walther.Neuper@jku.at>
Mon, 26 Sep 2022 10:57:53 +0200
changeset 60556 486223010ea8
parent 60551 3b5be6fae2f0
child 60557 0be383bdb883
permissions -rw-r--r--
follow up 2: Problem.adapt_to_typ on loading by CalcTree, CalcTreeTEST
walther@59632
     1
(*  Title:  build the Isac-Kernel: MathEngine & Knowledge
neuper@38057
     2
    Author: Walther Neuper, TU Graz, 100808
neuper@38051
     3
   (c) due to copyright terms
neuper@38051
     4
neuper@52062
     5
For creating a heap image of isac see ~~/ROOT.
walther@59632
     6
For debugging see text at begin below, e.g. theory dependencies:
walther@59632
     7
  ~$ evince file:///home/wneuper/.isabelle/isabisac/browser_info/Unsorted/Isac/session_graph.pdf &
neuper@52062
     8
wneuper@59586
     9
ATTENTION: no errors in this theory do not mean that there are no errors in Isac ..
walther@59866
    10
.. open theories collecting files from folders: BaseDefinitions.thy, ProgLang.thy etc.
walther@59632
    11
Errors are rigorously detected by isabelle build.
neuper@37906
    12
*)
neuper@37906
    13
walther@59998
    14
theory Build_Isac
wneuper@59206
    15
imports
walther@59887
    16
(*  theory Know_Store imports Complex_Main
wenzelm@60192
    17
    $ISABELLE_ISAC/BaseDefinitions
walther@59632
    18
      ML_file libraryC.sml
walther@59865
    19
      ML_file theoryC.sml
walther@59963
    20
      ML_file unparseC.sml
walther@59850
    21
      ML_file "rule-def.sml"
walther@59963
    22
      ML_file "thmC-def.sml"
walther@59919
    23
      ML_file "eval-def.sml"
walther@59858
    24
      ML_file "rewrite-order.sml"
walther@59632
    25
      ML_file rule.sml
walther@59963
    26
      ML_file "error-pattern-def.sml"
walther@59852
    27
      ML_file "rule-set.sml"
walther@59963
    28
      
walther@59963
    29
      ML_file "store.sml"
walther@59963
    30
      ML_file "check-unique.sml"
walther@59963
    31
      ML_file "specification.sml"
walther@59963
    32
      ML_file "model-pattern.sml"
walther@59963
    33
      ML_file "problem-def.sml"
walther@59963
    34
      ML_file "method-def.sml"
walther@59963
    35
      ML_file "cas-def.sml"
walther@59963
    36
      ML_file "thy-write.sml"
walther@59887
    37
  theory BaseDefinitions imports Know_Store
wenzelm@60192
    38
  $ISABELLE_ISAC/BaseDefinitions
walther@59632
    39
    ML_file termC.sml
walther@59963
    40
    ML_file substitution.sml
walther@59632
    41
    ML_file contextC.sml
walther@59687
    42
    ML_file environment.sml
walther@60077
    43
( ** )    "BaseDefinitions/BaseDefinitions"( **)
walther@60317
    44
(*
Walther@60516
    45
      theory Calc_Binop imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
walther@60317
    46
        at $ISABELLE_ISAC/ProgLang
walther@59902
    47
        ML_file evaluate.sml
wenzelm@60192
    48
      theory ListC imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
wenzelm@60192
    49
      theory Program imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
Walther@60516
    50
    theory Prog_Expr imports Calc_Binop ListC Program
walther@60317
    51
     theory Prog_Tac imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
wenzelm@60192
    52
      theory Tactical imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
walther@60317
    53
    theory Auto_Prog imports Prog_Tac Tactical
walther@59632
    54
  theory ProgLang imports Prog_Expr Auto_Prog
walther@60317
    55
    at $ISABELLE_ISAC/ProgLang
walther@60077
    56
( ** )    "ProgLang/ProgLang"( **)
wneuper@59600
    57
(*
walther@59674
    58
  theory MathEngBasic imports
wenzelm@60192
    59
    "$ISABELLE_ISAC/ProgLang/ProgLang" "$ISABELLE_ISAC/Specify/Input_Descript"
walther@60317
    60
    at $ISABELLE_ISAC/MathEngBasic
walther@59875
    61
    ML_file thmC.sml
walther@59963
    62
    ML_file problem.sml
walther@59963
    63
    ML_file method.sml
walther@59963
    64
    ML_file "cas-command.sml"
walther@59963
    65
  
walther@59865
    66
    ML_file rewrite.sml
walther@59963
    67
  
walther@59963
    68
    ML_file "model-def.sml"
walther@59963
    69
    ML_file "istate-def.sml"
walther@59674
    70
    ML_file "calc-tree-elem.sml"
walther@59963
    71
    ML_file "pre-conds-def.sml"
walther@59963
    72
  
walther@59632
    73
    ML_file tactic.sml
walther@59963
    74
    ML_file applicable.sml
walther@59963
    75
  
walther@59777
    76
    ML_file position.sml
walther@59674
    77
    ML_file "ctree-basic.sml"
walther@59674
    78
    ML_file "ctree-access.sml"
walther@59674
    79
    ML_file "ctree-navi.sml"
walther@59674
    80
    ML_file ctree.sml
walther@59963
    81
  
walther@59963
    82
    ML_file "state-steps.sml"
walther@59777
    83
    ML_file calculation.sml
walther@60077
    84
( ** )    "MathEngBasic/MathEngBasic"( **)
walther@59674
    85
(*
wenzelm@60192
    86
    theory Input_Descript imports "$ISABELLE_ISAC/BaseDefinitions/BaseDefinitions"
wenzelm@60192
    87
    $ISABELLE_ISAC/Specify
wenzelm@60192
    88
  theory Specify imports "$ISABELLE_ISAC/ProgLang/ProgLang" Input_Descript
wenzelm@60192
    89
  $ISABELLE_ISAC/Specify
walther@59963
    90
    ML_file formalise.sml
walther@59963
    91
    ML_file "o-model.sml"
walther@59963
    92
    ML_file "i-model.sml"
walther@59963
    93
    ML_file "p-model.sml"
walther@59963
    94
    ML_file model.sml
walther@59963
    95
    ML_file "pre-conditions.sml"
walther@59963
    96
    ML_file refine.sml
walther@59963
    97
    ML_file "mstools.sml" (*..TODO review*)
walther@59963
    98
    ML_file ptyps.sml     (*..TODO review*)
walther@59963
    99
    ML_file "test-out.sml"
walther@59963
   100
    ML_file "specify-step.sml"
walther@59963
   101
    ML_file calchead.sml  (*..TODO review*)
walther@59963
   102
    ML_file "input-calchead.sml"
walther@59777
   103
    ML_file "step-specify.sml"
walther@59777
   104
    ML_file specify.sml
walther@60077
   105
( ** )    "Specify/Specify"( **)
wneuper@59600
   106
(*
wenzelm@60192
   107
  theory Interpret imports "$ISABELLE_ISAC/Specify/Specify"
wenzelm@60192
   108
  $ISABELLE_ISAC/Interpret
walther@59777
   109
    ML_file istate.sml
walther@59963
   110
    ML_file "sub-problem.sml"
walther@59963
   111
    ML_file "thy-read.sml"
walther@59963
   112
    ML_file "solve-step.sml"
walther@59963
   113
    ML_file "error-pattern.sml"
walther@59963
   114
    ML_file derive.sml
walther@59794
   115
    ML_file "li-tool.sml"
walther@59632
   116
    ML_file "lucas-interpreter.sml"
walther@59794
   117
    ML_file "step-solve.sml"
walther@60077
   118
( ** )    "Interpret/Interpret"( **)
wneuper@59600
   119
(*
walther@60077
   120
  theory MathEngine imports Interpret.Interpret
wenzelm@60192
   121
  $ISABELLE_ISAC/MathEngine
walther@59833
   122
    ML_file "fetch-tactics.sml"
walther@59632
   123
    ML_file solve.sml
walther@59794
   124
    ML_file step.sml
walther@59833
   125
    ML_file "detail-step.sml"
walther@59634
   126
    ML_file "mathengine-stateless.sml"
walther@59632
   127
    ML_file messages.sml
walther@59632
   128
    ML_file states.sml
walther@60077
   129
( ** )    "MathEngine/MathEngine"( **)
wneuper@59600
   130
(*
wenzelm@60192
   131
  theory Test_Code imports "$ISABELLE_ISAC/MathEngine/MathEngine"
wenzelm@60192
   132
  $ISABELLE_ISAC/Test_Code
walther@59814
   133
    ML_file "test-code.sml"
walther@60077
   134
( ** )    "Test_Code/Test_Code"( **)
walther@59814
   135
(*
wenzelm@60192
   136
  theory BridgeLibisabelle imports "$ISABELLE_ISAC/MathEngine/MathEngine"
wenzelm@60192
   137
  $ISABELLE_ISAC/BridgeLibisabelle
walther@59963
   138
    ML_file "thy-present.sml"
walther@59963
   139
    ML_file mathml.sml   
walther@59632
   140
    ML_file datatypes.sml
walther@59632
   141
    ML_file "pbl-met-hierarchy.sml"
walther@59632
   142
    ML_file "thy-hierarchy.sml" 
walther@59632
   143
    ML_file "interface-xml.sml"
walther@59632
   144
    ML_file interface.sml
walther@60077
   145
( ** )    "BridgeLibisabelle/BridgeLibisabelle"( **)
walther@60044
   146
(*
walther@60181
   147
    theory Calculation imports Calculation (*preliminary for starting Isabelle/Isac*)
wenzelm@60192
   148
    $ISABELLE_ISAC/BridgeJEdit
walther@60181
   149
      ML_file parseC.sml
walther@60181
   150
      ML_file preliminary.sml
walther@60181
   151
  theory BridgeJEdit imports Calculation (*preliminary for starting Isabelle/Isac*)
wenzelm@60192
   152
  $ISABELLE_ISAC/BridgeJEdit
walther@60181
   153
( ** )    "BridgeLibisabelle/BridgeLibisabelle"( **)
walther@60181
   154
(*
wenzelm@60192
   155
    theory Isac imports  "$ISABELLE_ISAC/MathEngine/MathEngine"
walther@60044
   156
      ML_file parseC.sml
walther@60044
   157
  theory BridgeJEdit imports Isac    
walther@60149
   158
( **)    "BridgeJEdit/BridgeJEdit"  (*DEactivate after devel.of BridgeJEdit*)
wneuper@59147
   159
walther@59612
   160
          "Knowledge/Build_Thydata" (*imports Isac.thy etc*)
wneuper@59469
   161
wneuper@59601
   162
(*//-----------------------------------------------------------------------------------------\\*)
wneuper@59601
   163
(*\\-----------------------------------------------------------------------------------------//*)
neuper@48763
   164
begin
neuper@48760
   165
wneuper@59472
   166
text \<open>
neuper@55276
   167
  show theory dependencies using the graph browser, 
neuper@55276
   168
  open "browser_info/HOL/Isac/session.graph"
neuper@55276
   169
  and proceed from the ancestors towards the siblings.
wneuper@59472
   170
\<close>
neuper@55276
   171
wneuper@59472
   172
section \<open>check presence of definitions from directories\<close>
neuper@48763
   173
wneuper@59263
   174
(*declare [[ML_print_depth = 999]]*)
wneuper@59472
   175
ML \<open>
wneuper@59472
   176
\<close> ML \<open>
wneuper@59587
   177
\<close> ML \<open>
Walther@60556
   178
\<close> ML \<open> (* \<rightarrow> termC.sml*)
Walther@60556
   179
\<close> ML \<open> (* \<rightarrow> model-pattern.sml*)
Walther@60556
   180
\<close> ML \<open>
Walther@60556
   181
Model_Pattern.adapt_term_to_type: Proof.context -> term -> term ;
Walther@60556
   182
Model_Pattern.adapt_to_type: Proof.context -> Model_Pattern.single -> Model_Pattern.single
Walther@60556
   183
\<close> ML \<open>
Walther@60556
   184
\<close> ML \<open> (* \<rightarrow> problem.sml*)
Walther@60556
   185
\<close> ML \<open>
Walther@60556
   186
val id = ["univariate", "equation", "test"]
Walther@60556
   187
\<close> ML \<open>
Walther@60556
   188
Problem.from_store_PIDE: Proof.context -> Problem.id -> Problem.T
Walther@60556
   189
\<close> ML \<open>
Walther@60556
   190
\<close> ML \<open> (* \<rightarrow> refine.sml*)
Walther@60556
   191
\<close> ML \<open>
Walther@60556
   192
\<close> text \<open>  local
Walther@60556
   193
refin_PIDE
Walther@60556
   194
\<close> ML \<open>
Walther@60556
   195
\<close> text \<open>  \<isac_test>
Walther@60556
   196
refine_PIDE
Walther@60556
   197
\<close> ML \<open>
Walther@60556
   198
\<close> ML \<open>
Walther@60556
   199
\<close> ML \<open>(*---------------------------- why "real" in pbl? ----------------------------*)
Walther@60556
   200
Test_Tool.show_ptyps ();
Walther@60556
   201
\<close> ML \<open>
Walther@60556
   202
KEStore_Elems.get_pbls @{theory Poly}; (*! real ! due to Simplify :: "real => real" etc*)
Walther@60556
   203
\<close> ML \<open>
Walther@60556
   204
Problem.from_store_PIDE @{context} ["polynomial", "simplification"]
Walther@60556
   205
\<close> ML \<open>
Walther@60556
   206
val input = (["polynomial", "simplification"], 
Walther@60556
   207
  [("#Given", ["Simplify t_t"]), ("#Find", ["normalform n_n"])], 
Walther@60556
   208
  Rule_Set.empty, NONE (*cas*), 
Walther@60556
   209
  [["simplification","for_polynomials"]]) : Problem.input
Walther@60556
   210
\<close> ML \<open>
Walther@60556
   211
Problem.prep_input_PIDE @{theory Poly} "guh" ["math-author-1"] ["polynomial", "simplification"]
Walther@60556
   212
  input; (*! real !*)
Walther@60556
   213
\<close> ML \<open>
Walther@60556
   214
\<close> ML \<open>
Walther@60556
   215
\<close> ML \<open>
Walther@60556
   216
"~~~~~ fun prep_input_PIDE , args:"; val (thy, guh, maa, init, (pblID, dsc_dats, ev, ca, metIDs)) =
Walther@60556
   217
  (@{theory Poly}, "guh", ["math-author-1"], ["polynomial", "simplification"], input);
Walther@60556
   218
\<close> ML \<open>
Walther@60556
   219
      fun eq f (f', _) = f = f';
Walther@60556
   220
\<close> ML \<open>
Walther@60556
   221
      val gi = filter (eq "#Given") dsc_dats;
Walther@60556
   222
\<close> ML \<open>
Walther@60556
   223
        val (_, gi') :: [] = (*case*) gi (*of*);
Walther@60556
   224
\<close> ML \<open>
Walther@60556
   225
      map (Problem.split_did_PIDE o (Syntax.read_term_global thy)) gi'
Walther@60556
   226
\<close> ML \<open>
Walther@60556
   227
\<close> ML \<open>
Walther@60556
   228
(*+*)Syntax.read_term_global thy "Simplify t_t" (*Simplify :: "real => real"*)
Walther@60556
   229
\<close> ML \<open>
Walther@60556
   230
(*+*)TermC.parse_patt thy "matches (?a = 0) e_e"
Walther@60556
   231
(* = Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ 
Walther@60556
   232
  
Walther@60556
   233
Var (("a", 0), "real") $ Const ("Groups.zero_class.zero", "real")) $ Free ("e_e", "bool")*)
Walther@60556
   234
\<close> ML \<open>
Walther@60556
   235
(*+*)TermC.parse_patt_PIDE thy "matches (?a = 0) e_e"
Walther@60556
   236
(*t = Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ 
Walther@60556
   237
  Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool")*)
Walther@60556
   238
\<close> ML \<open>
Walther@60556
   239
\<close> ML \<open>
Walther@60556
   240
\<close> ML \<open>
Walther@60556
   241
\<close> ML \<open>
Walther@60556
   242
KEStore_Elems.get_pbls @{theory Isac_Knowledge}; (*! real ! due to Simplify :: "real => real" etc*)
Walther@60556
   243
(*val it =
Walther@60556
   244
   [Node ("empty_probl_id", [{cas = NONE, guh = "pbl_empty", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls = Empty, thy = {Pure}, where_ = []}], []),
Walther@60556
   245
    Node
Walther@60556
   246
     ("simplification",
Walther@60556
   247
      [{cas = SOME (Const ("Simplify.Simplify", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_simp", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   248
        [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   249
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   250
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   251
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   252
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   253
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   254
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   255
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
   256
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
   257
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
   258
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
   259
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
   260
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
   261
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify:30},
Walther@60556
   262
        where_ = []}],
Walther@60556
   263
      [Node
Walther@60556
   264
        ("polynomial",
Walther@60556
   265
         [{cas = SOME (Const ("Simplify.Simplify", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_simp_poly", init = ["empty_probl_id"], mathauthors = [], met = [["simplification", "for_polynomials"]],
Walther@60556
   266
           ppc = [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   267
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Poly.is_polyexp", fn)], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   268
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   269
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   270
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   271
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   272
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   273
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   274
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   275
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   276
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   277
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   278
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   279
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   280
             Isac.Poly:734},
Walther@60556
   281
           where_ = [Const ("Poly.is_polyexp", "real \<Rightarrow> bool") $ Free ("t_t", "real")]}],
Walther@60556
   282
         []),
Walther@60556
   283
       Node
Walther@60556
   284
        ("rational",
Walther@60556
   285
         [{cas = SOME (Const ("Simplify.Simplify", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_simp_rat", init = ["empty_probl_id"], mathauthors = [], met = [["simplification", "of_rationals"]], ppc =
Walther@60556
   286
           [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   287
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   288
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   289
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   290
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   291
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   292
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   293
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   294
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   295
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   296
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   297
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   298
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   299
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   300
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational:315},
Walther@60556
   301
           where_ = [Const ("Rational.is_ratpolyexp", "real \<Rightarrow> bool") $ Free ("t_t", "real")]}],
Walther@60556
   302
         [Node
Walther@60556
   303
           ("partial_fraction",
Walther@60556
   304
            [{cas = NONE, guh = "pbl_simp_rat_partfrac", init = ["empty_probl_id"], mathauthors = [], met = [["simplification", "of_rationals", "to_partial_fraction"]], ppc =
Walther@60556
   305
              [("#Given", (Const ("Input_Descript.functionTerm", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   306
               ("#Find", (Const ("Partial_Fractions.decomposedFunction", "real \<Rightarrow> una"), Free ("p_p'''", "real")))],
Walther@60556
   307
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   308
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   309
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   310
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   311
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   312
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   313
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   314
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   315
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   316
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   317
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   318
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   319
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   320
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.Partial_Fractions:136},
Walther@60556
   321
              where_ = []}],
Walther@60556
   322
            [])])]),
Walther@60556
   323
    Node
Walther@60556
   324
     ("vereinfachen",
Walther@60556
   325
      [{cas = SOME (Const ("Simplify.Vereinfache", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_vereinfache", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   326
        [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   327
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   328
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   329
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   330
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   331
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   332
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   333
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
   334
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
   335
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
   336
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
   337
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
   338
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
   339
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify:40},
Walther@60556
   340
        where_ = []}],
Walther@60556
   341
      [Node
Walther@60556
   342
        ("polynom",
Walther@60556
   343
         [{cas = NONE, guh = "pbl_vereinf_poly", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls = Empty, thy =
Walther@60556
   344
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   345
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   346
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   347
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   348
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   349
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   350
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   351
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   352
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   353
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   354
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   355
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   356
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:199},
Walther@60556
   357
           where_ = []}],
Walther@60556
   358
         [Node
Walther@60556
   359
           ("plus_minus",
Walther@60556
   360
            [{cas = SOME (Const ("Simplify.Vereinfache", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_vereinf_poly_minus", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
   361
              [["simplification", "for_polynomials", "with_minus"]], ppc =
Walther@60556
   362
              [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   363
              Repeat
Walther@60556
   364
               {calc = [], erls = Empty, errpatts = [], id = "prls_pbl_vereinf_poly", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   365
                [Eval ("Poly.is_polyexp", fn), Eval ("Prog_Expr.matchsub", fn), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
   366
                 Thm ("not_false", "(\<not> False) = True")],
Walther@60556
   367
                scr = Empty_Prog, srls = Empty},
Walther@60556
   368
              thy =
Walther@60556
   369
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   370
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   371
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   372
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   373
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   374
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   375
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   376
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   377
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   378
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   379
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   380
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   381
                Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:209},
Walther@60556
   382
              where_ =
Walther@60556
   383
              [Const ("Poly.is_polyexp", "real \<Rightarrow> bool") $ Free ("t_t", "real"),
Walther@60556
   384
               Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   385
                 (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   386
                   (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   387
                     (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   388
                       (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   389
                     Free ("t_t", "?'a1")) $
Walther@60556
   390
                   (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   391
                     (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   392
                       (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   393
                         (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   394
                       Free ("t_t", "?'a1")) $
Walther@60556
   395
                     (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   396
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   397
                         (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   398
                           (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   399
                         Free ("t_t", "?'a1")) $
Walther@60556
   400
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   401
                         (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   402
                           (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   403
                         Free ("t_t", "?'a1"))))),
Walther@60556
   404
               Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   405
                 (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   406
                   (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   407
                     (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   408
                       (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   409
                     Free ("t_t", "?'a1")) $
Walther@60556
   410
                   (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   411
                     (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   412
                       (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   413
                         (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   414
                       Free ("t_t", "?'a1")) $
Walther@60556
   415
                     (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   416
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   417
                         (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1")) $
Walther@60556
   418
                           Var (("a", 0), "?'a1")) $
Walther@60556
   419
                         Free ("t_t", "?'a1")) $
Walther@60556
   420
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   421
                         (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1")) $
Walther@60556
   422
                           Var (("a", 0), "?'a1")) $
Walther@60556
   423
                         Free ("t_t", "?'a1")))))]}],
Walther@60556
   424
            []),
Walther@60556
   425
          Node
Walther@60556
   426
           ("klammer",
Walther@60556
   427
            [{cas = SOME (Const ("Simplify.Vereinfache", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_vereinf_poly_klammer", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
   428
              [["simplification", "for_polynomials", "with_parentheses"]], ppc =
Walther@60556
   429
              [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   430
              Repeat
Walther@60556
   431
               {calc = [], erls = Empty, errpatts = [], id = "prls_pbl_vereinf_poly_klammer", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   432
                [Eval ("Poly.is_polyexp", fn), Eval ("Prog_Expr.matchsub", fn), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
   433
                 Thm ("not_false", "(\<not> False) = True")],
Walther@60556
   434
                scr = Empty_Prog, srls = Empty},
Walther@60556
   435
              thy =
Walther@60556
   436
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   437
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   438
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   439
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   440
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   441
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   442
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   443
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   444
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   445
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   446
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   447
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   448
                Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:219},
Walther@60556
   449
              where_ =
Walther@60556
   450
              [Const ("Poly.is_polyexp", "real \<Rightarrow> bool") $ Free ("t_t", "real"),
Walther@60556
   451
               Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   452
                 (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   453
                   (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   454
                     (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   455
                       (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   456
                     Free ("t_t", "?'a1")) $
Walther@60556
   457
                   (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   458
                     (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   459
                       (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
   460
                         (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1"))) $
Walther@60556
   461
                       Free ("t_t", "?'a1")) $
Walther@60556
   462
                     (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   463
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   464
                         (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1")) $
Walther@60556
   465
                           Var (("a", 0), "?'a1")) $
Walther@60556
   466
                         Free ("t_t", "?'a1")) $
Walther@60556
   467
                       (Const ("Prog_Expr.matchsub", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
   468
                         (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ (Const ("Groups.minus_class.minus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Var (("c", 0), "?'a1")) $
Walther@60556
   469
                           Var (("a", 0), "?'a1")) $
Walther@60556
   470
                         Free ("t_t", "?'a1")))))]}],
Walther@60556
   471
            []),
Walther@60556
   472
          Node
Walther@60556
   473
           ("binom_klammer",
Walther@60556
   474
            [{cas = SOME (Const ("Simplify.Vereinfache", "real \<Rightarrow> real") $ Free ("t_t", "real")), guh = "pbl_vereinf_poly_klammer_mal", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
   475
              [["simplification", "for_polynomials", "with_parentheses_mult"]], ppc =
Walther@60556
   476
              [("#Given", (Const ("Simplify.Term", "real \<Rightarrow> una"), Free ("t_t", "real"))), ("#Find", (Const ("Simplify.normalform", "real \<Rightarrow> una"), Free ("n_n", "real")))], prls =
Walther@60556
   477
              Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Poly.is_polyexp", fn)], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   478
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   479
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   480
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   481
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   482
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   483
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   484
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   485
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   486
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   487
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   488
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   489
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   490
                Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:229},
Walther@60556
   491
              where_ = [Const ("Poly.is_polyexp", "real \<Rightarrow> bool") $ Free ("t_t", "real")]}],
Walther@60556
   492
            [])])]),
Walther@60556
   493
    Node
Walther@60556
   494
     ("probe",
Walther@60556
   495
      [{cas = NONE, guh = "pbl_probe", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls = Empty, thy =
Walther@60556
   496
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   497
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   498
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   499
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   500
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   501
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
   502
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
   503
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
   504
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
   505
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
   506
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
   507
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational,
Walther@60556
   508
          Isac.PolyMinus:239},
Walther@60556
   509
        where_ = []}],
Walther@60556
   510
      [Node
Walther@60556
   511
        ("polynom",
Walther@60556
   512
         [{cas = SOME (Const ("PolyMinus.Probe", "bool \<Rightarrow> bool list \<Rightarrow> bool") $ Free ("e_e", "bool") $ Free ("w_w", "bool list")), guh = "pbl_probe_poly", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
   513
           [["probe", "fuer_polynom"]], ppc =
Walther@60556
   514
           [("#Given", (Const ("PolyMinus.Pruefe", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("PolyMinus.mitWert", "bool list \<Rightarrow> tobooll"), Free ("w_w", "bool list"))),
Walther@60556
   515
            ("#Find", (Const ("PolyMinus.Geprueft", "bool \<Rightarrow> una"), Free ("p_p", "bool")))],
Walther@60556
   516
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "prls_pbl_probe_poly", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Poly.is_polyexp", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
   517
           thy =
Walther@60556
   518
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   519
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   520
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   521
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   522
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   523
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   524
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   525
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   526
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   527
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   528
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   529
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   530
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:249},
Walther@60556
   531
           where_ = [Const ("Poly.is_polyexp", "real \<Rightarrow> bool") $ Free ("e_e", "real")]}],
Walther@60556
   532
         []),
Walther@60556
   533
       Node
Walther@60556
   534
        ("bruch",
Walther@60556
   535
         [{cas = SOME (Const ("PolyMinus.Probe", "bool \<Rightarrow> bool list \<Rightarrow> bool") $ Free ("e_e", "bool") $ Free ("w_w", "bool list")), guh = "pbl_probe_bruch", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
   536
           [["probe", "fuer_bruch"]], ppc =
Walther@60556
   537
           [("#Given", (Const ("PolyMinus.Pruefe", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("PolyMinus.mitWert", "bool list \<Rightarrow> tobooll"), Free ("w_w", "bool list"))),
Walther@60556
   538
            ("#Find", (Const ("PolyMinus.Geprueft", "bool \<Rightarrow> una"), Free ("p_p", "bool")))],
Walther@60556
   539
           prls =
Walther@60556
   540
           Repeat {calc = [], erls = Empty, errpatts = [], id = "prls_pbl_probe_bruch", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Rational.is_ratpolyexp", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
   541
           thy =
Walther@60556
   542
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   543
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   544
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   545
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   546
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   547
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   548
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   549
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   550
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   551
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   552
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   553
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   554
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.PolyMinus:259},
Walther@60556
   555
           where_ = [Const ("Rational.is_ratpolyexp", "real \<Rightarrow> bool") $ Free ("e_e", "real")]}],
Walther@60556
   556
         [])]),
Walther@60556
   557
    Node
Walther@60556
   558
     ("equation",
Walther@60556
   559
      [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh = "pbl_equ", init =
Walther@60556
   560
        ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   561
        [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   562
         ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   563
        prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "equation_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Prog_Expr.matches", fn)], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
   564
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   565
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   566
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   567
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   568
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   569
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
   570
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
   571
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
   572
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
   573
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
   574
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
   575
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Equation:50},
Walther@60556
   576
        where_ = [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Var (("b", 0), "?'a1")) $ Free ("e_e", "bool")]}],
Walther@60556
   577
      [Node
Walther@60556
   578
        ("univariate",
Walther@60556
   579
         [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh = "pbl_equ_univ",
Walther@60556
   580
           init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   581
           [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   582
            ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   583
           prls =
Walther@60556
   584
           Repeat {calc = [], erls = Empty, errpatts = [], id = "univariate_equation_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Prog_Expr.matches", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
   585
           thy =
Walther@60556
   586
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   587
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   588
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   589
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   590
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   591
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   592
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   593
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   594
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   595
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   596
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   597
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Equation:60},
Walther@60556
   598
           where_ = [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Var (("b", 0), "?'a1")) $ Free ("e_e", "bool")]}],
Walther@60556
   599
         [Node
Walther@60556
   600
           ("rootX",
Walther@60556
   601
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   602
              "pbl_equ_univ_root", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   603
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   604
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   605
              prls =
Walther@60556
   606
              Repeat
Walther@60556
   607
               {calc = [], erls = Empty, errpatts = [], id = "RootEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   608
                [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("RootEq.is_sqrtTerm_in", fn), Eval ("RootEq.is_rootTerm_in", fn),
Walther@60556
   609
                 Eval ("RootEq.is_normSqrtTerm_in", fn), Eval ("HOL.eq", fn), Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"),
Walther@60556
   610
                 Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   611
                scr = Empty_Prog, srls = Empty},
Walther@60556
   612
              thy =
Walther@60556
   613
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   614
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   615
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   616
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   617
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   618
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   619
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   620
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   621
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   622
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   623
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   624
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   625
                Isac.Poly, Isac.Root, Isac.Equation, Isac.RootEq:252},
Walther@60556
   626
              where_ =
Walther@60556
   627
              [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("RootEq.is_rootTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   628
                 (Const ("RootEq.is_rootTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"))]}],
Walther@60556
   629
            [Node
Walther@60556
   630
              ("sq",
Walther@60556
   631
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   632
                 "pbl_equ_univ_root_sq", init = ["empty_probl_id"], mathauthors = [], met = [["RootEq", "solve_sq_root_equation"]], ppc =
Walther@60556
   633
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   634
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   635
                 prls =
Walther@60556
   636
                 Repeat
Walther@60556
   637
                  {calc = [], erls = Empty, errpatts = [], id = "RootEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   638
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("RootEq.is_sqrtTerm_in", fn), Eval ("RootEq.is_rootTerm_in", fn),
Walther@60556
   639
                    Eval ("RootEq.is_normSqrtTerm_in", fn), Eval ("HOL.eq", fn), Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"),
Walther@60556
   640
                    Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   641
                   scr = Empty_Prog, srls = Empty},
Walther@60556
   642
                 thy =
Walther@60556
   643
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   644
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   645
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   646
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   647
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   648
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   649
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   650
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   651
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
   652
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
   653
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
   654
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
   655
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.RootEq:262},
Walther@60556
   656
                 where_ =
Walther@60556
   657
                 [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   658
                    (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   659
                      (Const ("RootEq.is_sqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   660
                      (Const ("RootEq.is_normSqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"))) $
Walther@60556
   661
                    (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   662
                      (Const ("RootEq.is_sqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   663
                      (Const ("RootEq.is_normSqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")))]}],
Walther@60556
   664
               [Node
Walther@60556
   665
                 ("rat",
Walther@60556
   666
                  [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   667
                    "pbl_equ_univ_root_sq_rat", init = ["empty_probl_id"], mathauthors = [], met = [["RootRatEq", "elim_rootrat_equation"]], ppc =
Walther@60556
   668
                    [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   669
                     ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   670
                    prls =
Walther@60556
   671
                    Repeat
Walther@60556
   672
                     {calc = [], erls = Empty, errpatts = [], id = "RootRatEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   673
                      [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("RootEq.is_rootTerm_in", fn),
Walther@60556
   674
                       Eval ("RootRatEq.is_rootRatAddTerm_in", fn), Eval ("HOL.eq", fn), Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"),
Walther@60556
   675
                       Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   676
                      scr = Empty_Prog, srls = Empty},
Walther@60556
   677
                    thy =
Walther@60556
   678
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   679
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   680
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
   681
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
   682
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
   683
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
   684
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
   685
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
   686
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
   687
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
   688
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
   689
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
   690
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
   691
                      Isac.RootRat, Isac.RootRatEq:108},
Walther@60556
   692
                    where_ =
Walther@60556
   693
                    [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   694
                       (Const ("RootRatEq.is_rootRatAddTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   695
                       (Const ("RootRatEq.is_rootRatAddTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"))]}],
Walther@60556
   696
                  [])]),
Walther@60556
   697
             Node
Walther@60556
   698
              ("normalise",
Walther@60556
   699
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   700
                 "pbl_equ_univ_root_norm", init = ["empty_probl_id"], mathauthors = [], met = [["RootEq", "norm_sq_root_equation"]], ppc =
Walther@60556
   701
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   702
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   703
                 prls =
Walther@60556
   704
                 Repeat
Walther@60556
   705
                  {calc = [], erls = Empty, errpatts = [], id = "RootEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   706
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("RootEq.is_sqrtTerm_in", fn), Eval ("RootEq.is_rootTerm_in", fn),
Walther@60556
   707
                    Eval ("RootEq.is_normSqrtTerm_in", fn), Eval ("HOL.eq", fn), Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"),
Walther@60556
   708
                    Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   709
                   scr = Empty_Prog, srls = Empty},
Walther@60556
   710
                 thy =
Walther@60556
   711
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   712
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   713
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   714
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   715
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   716
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   717
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   718
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   719
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
   720
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
   721
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
   722
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
   723
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.RootEq:272},
Walther@60556
   724
                 where_ =
Walther@60556
   725
                 [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   726
                    (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   727
                      (Const ("RootEq.is_sqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   728
                      (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   729
                        (Const ("RootEq.is_normSqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")))) $
Walther@60556
   730
                    (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   731
                      (Const ("RootEq.is_sqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   732
                      (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   733
                        (Const ("RootEq.is_normSqrtTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"))))]}],
Walther@60556
   734
               [])]),
Walther@60556
   735
          Node
Walther@60556
   736
           ("LINEAR",
Walther@60556
   737
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   738
              "pbl_equ_univ_lin", init = ["empty_probl_id"], mathauthors = [], met = [["LinEq", "solve_lineq_equation"]], ppc =
Walther@60556
   739
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   740
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   741
              prls =
Walther@60556
   742
              Repeat
Walther@60556
   743
               {calc = [], erls = Empty, errpatts = [], id = "LinEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   744
                [Eval ("HOL.eq", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn),
Walther@60556
   745
                 Eval ("Prog_Expr.occurs_in", fn), Eval ("Prog_Expr.ident", fn), Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"),
Walther@60556
   746
                 Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   747
                scr = Empty_Prog, srls = Empty},
Walther@60556
   748
              thy =
Walther@60556
   749
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   750
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   751
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   752
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   753
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   754
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   755
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   756
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   757
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   758
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   759
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   760
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   761
                Isac.Poly, Isac.Equation, Isac.LinEq:107},
Walther@60556
   762
              where_ =
Walther@60556
   763
              [Const ("HOL.False", "bool"),
Walther@60556
   764
               Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("Poly.is_polyrat_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")),
Walther@60556
   765
               Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("Poly.is_polyrat_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")),
Walther@60556
   766
               Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   767
                 Const ("Groups.one_class.one", "real"),
Walther@60556
   768
               Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   769
                 Const ("Groups.one_class.one", "real")]}],
Walther@60556
   770
            []),
Walther@60556
   771
          Node
Walther@60556
   772
           ("rational",
Walther@60556
   773
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   774
              "pbl_equ_univ_rat", init = ["empty_probl_id"], mathauthors = [], met = [["RatEq", "solve_rat_equation"]], ppc =
Walther@60556
   775
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   776
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   777
              prls =
Walther@60556
   778
              Repeat
Walther@60556
   779
               {calc = [], erls = Empty, errpatts = [], id = "RatEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   780
                [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("RatEq.is_ratequation_in", fn), Eval ("HOL.eq", fn),
Walther@60556
   781
                 Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   782
                 Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   783
                scr = Empty_Prog, srls = Empty},
Walther@60556
   784
              thy =
Walther@60556
   785
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   786
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   787
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   788
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   789
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   790
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   791
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   792
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   793
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   794
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   795
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   796
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   797
                Isac.Poly, Isac.GCD_Poly_ML, Isac.Equation, Isac.Rational, Isac.LinEq, Isac.RatEq:163},
Walther@60556
   798
              where_ = [Const ("RatEq.is_ratequation_in", "bool \<Rightarrow> real \<Rightarrow> bool") $ Free ("e_e", "bool") $ Free ("v_v", "real")]}],
Walther@60556
   799
            []),
Walther@60556
   800
          Node
Walther@60556
   801
           ("polynomial",
Walther@60556
   802
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   803
              "pbl_equ_univ_poly", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
   804
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   805
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   806
              prls =
Walther@60556
   807
              Repeat
Walther@60556
   808
               {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   809
                [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
   810
                 Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
   811
                 Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   812
                 Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   813
                scr = Empty_Prog, srls = Empty},
Walther@60556
   814
              thy =
Walther@60556
   815
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
   816
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   817
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   818
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   819
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   820
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   821
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   822
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   823
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
   824
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
   825
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
   826
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
   827
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:502},
Walther@60556
   828
              where_ =
Walther@60556
   829
              [Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("RatEq.is_ratequation_in", "bool \<Rightarrow> real \<Rightarrow> bool") $ Free ("e_e", "bool") $ Free ("v_v", "real")),
Walther@60556
   830
               Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("RootEq.is_rootTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")),
Walther@60556
   831
               Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("RootEq.is_rootTerm_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.rhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"))]}],
Walther@60556
   832
            [Node
Walther@60556
   833
              ("degree_0",
Walther@60556
   834
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   835
                 "pbl_equ_univ_poly_deg0", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d0_polyeq_equation"]], ppc =
Walther@60556
   836
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   837
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   838
                 prls =
Walther@60556
   839
                 Repeat
Walther@60556
   840
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   841
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
   842
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
   843
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   844
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   845
                   scr = Empty_Prog, srls = Empty},
Walther@60556
   846
                 thy =
Walther@60556
   847
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   848
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   849
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   850
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   851
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   852
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   853
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   854
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   855
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
   856
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
   857
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
   858
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
   859
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:512},
Walther@60556
   860
                 where_ =
Walther@60556
   861
                 [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
   862
                  Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"),
Walther@60556
   863
                  Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   864
                    Const ("Groups.zero_class.zero", "real")]}],
Walther@60556
   865
               []),
Walther@60556
   866
             Node
Walther@60556
   867
              ("degree_1",
Walther@60556
   868
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   869
                 "pbl_equ_univ_poly_deg1", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d1_polyeq_equation"]], ppc =
Walther@60556
   870
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   871
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   872
                 prls =
Walther@60556
   873
                 Repeat
Walther@60556
   874
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   875
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
   876
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
   877
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   878
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   879
                   scr = Empty_Prog, srls = Empty},
Walther@60556
   880
                 thy =
Walther@60556
   881
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   882
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   883
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   884
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   885
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   886
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   887
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   888
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   889
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
   890
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
   891
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
   892
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
   893
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:522},
Walther@60556
   894
                 where_ =
Walther@60556
   895
                 [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
   896
                  Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"),
Walther@60556
   897
                  Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   898
                    Const ("Groups.one_class.one", "real")]}],
Walther@60556
   899
               []),
Walther@60556
   900
             Node
Walther@60556
   901
              ("degree_2",
Walther@60556
   902
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   903
                 "pbl_equ_univ_poly_deg2", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d2_polyeq_equation"]], ppc =
Walther@60556
   904
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   905
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   906
                 prls =
Walther@60556
   907
                 Repeat
Walther@60556
   908
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   909
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
   910
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
   911
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   912
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   913
                   scr = Empty_Prog, srls = Empty},
Walther@60556
   914
                 thy =
Walther@60556
   915
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   916
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   917
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
   918
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
   919
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
   920
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
   921
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
   922
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
   923
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
   924
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
   925
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
   926
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
   927
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:532},
Walther@60556
   928
                 where_ =
Walther@60556
   929
                 [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
   930
                  Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"),
Walther@60556
   931
                  Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
   932
                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))]}],
Walther@60556
   933
               [Node
Walther@60556
   934
                 ("sq_only",
Walther@60556
   935
                  [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
   936
                    "pbl_equ_univ_poly_deg2_sqonly", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d2_polyeq_sqonly_equation"]], ppc =
Walther@60556
   937
                    [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
   938
                     ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
   939
                    prls =
Walther@60556
   940
                    Repeat
Walther@60556
   941
                     {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
   942
                      [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
   943
                       Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
   944
                       Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
   945
                       Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
   946
                      scr = Empty_Prog, srls = Empty},
Walther@60556
   947
                    thy =
Walther@60556
   948
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
   949
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
   950
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
   951
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
   952
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
   953
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
   954
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
   955
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
   956
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
   957
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
   958
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
   959
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
   960
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
   961
                      Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:542},
Walther@60556
   962
                    where_ =
Walther@60556
   963
                    [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   964
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   965
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
   966
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
   967
                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
   968
                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
   969
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
   970
                         Free ("e_e", "bool")) $
Walther@60556
   971
                       (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   972
                         (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   973
                           (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
   974
                             (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
   975
                               (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
   976
                                 (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
   977
                                   (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
   978
                             Const ("Groups.zero_class.zero", "real")) $
Walther@60556
   979
                           Free ("e_e", "bool")) $
Walther@60556
   980
                         (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   981
                           (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   982
                             (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
   983
                               (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
   984
                                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
   985
                               Const ("Groups.zero_class.zero", "real")) $
Walther@60556
   986
                             Free ("e_e", "bool")) $
Walther@60556
   987
                           (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   988
                             (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
   989
                               (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
   990
                                 (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
   991
                                   (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
   992
                               Const ("Groups.zero_class.zero", "real")) $
Walther@60556
   993
                             Free ("e_e", "bool")))),
Walther@60556
   994
                     Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   995
                       (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
   996
                         (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
   997
                           (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
   998
                             (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
   999
                               (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1000
                                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1001
                             Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1002
                           Free ("e_e", "bool"))) $
Walther@60556
  1003
                       (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1004
                         (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1005
                           (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1006
                             (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1007
                               (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  1008
                                 (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1009
                                   (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $ Var (("v_", 0), "real"))) $
Walther@60556
  1010
                                 (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1011
                                   (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1012
                               Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1013
                             Free ("e_e", "bool"))) $
Walther@60556
  1014
                         (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1015
                           (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1016
                             (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1017
                               (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1018
                                 (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
  1019
                                   (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("c", 0), "real") $
Walther@60556
  1020
                                     (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1021
                                       (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1022
                                 Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1023
                               Free ("e_e", "bool"))) $
Walther@60556
  1024
                           (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1025
                             (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1026
                               (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1027
                                 (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1028
                                   (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  1029
                                     (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1030
                                       (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $ Var (("v_", 0), "real"))) $
Walther@60556
  1031
                                     (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("c", 0), "real") $
Walther@60556
  1032
                                       (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1033
                                         (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1034
                                   Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1035
                                 Free ("e_e", "bool"))) $
Walther@60556
  1036
                             (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1037
                               (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1038
                                 (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1039
                                   (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1040
                                     (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1041
                                       (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1042
                                         (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1043
                                     Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1044
                                   Free ("e_e", "bool"))) $
Walther@60556
  1045
                               (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1046
                                 (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1047
                                   (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1048
                                     (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1049
                                       (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
  1050
                                         (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1051
                                           (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1052
                                       Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1053
                                     Free ("e_e", "bool"))) $
Walther@60556
  1054
                                 (Const ("HOL.conj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1055
                                   (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1056
                                     (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1057
                                       (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1058
                                         (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1059
                                           (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("c", 0), "real") $
Walther@60556
  1060
                                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1061
                                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1062
                                         Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1063
                                       Free ("e_e", "bool"))) $
Walther@60556
  1064
                                   (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1065
                                     (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1066
                                       (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1067
                                         (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  1068
                                           (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
  1069
                                           (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("c", 0), "real") $
Walther@60556
  1070
                                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1071
                                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1072
                                         Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1073
                                       Free ("e_e", "bool")))))))))]}],
Walther@60556
  1074
                  []),
Walther@60556
  1075
                Node
Walther@60556
  1076
                 ("bdv_only",
Walther@60556
  1077
                  [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1078
                    "pbl_equ_univ_poly_deg2_bdvonly", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d2_polyeq_bdvonly_equation"]], ppc =
Walther@60556
  1079
                    [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1080
                     ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1081
                    prls =
Walther@60556
  1082
                    Repeat
Walther@60556
  1083
                     {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1084
                      [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1085
                       Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1086
                       Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1087
                       Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1088
                      scr = Empty_Prog, srls = Empty},
Walther@60556
  1089
                    thy =
Walther@60556
  1090
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1091
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1092
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  1093
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  1094
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  1095
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  1096
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  1097
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  1098
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  1099
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  1100
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
  1101
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
  1102
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
  1103
                      Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:552},
Walther@60556
  1104
                    where_ =
Walther@60556
  1105
                    [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1106
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1107
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1108
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
  1109
                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1110
                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1111
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1112
                         Free ("e_e", "bool")) $
Walther@60556
  1113
                       (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1114
                         (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1115
                           (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1116
                             (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1117
                               (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1118
                                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1119
                             Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1120
                           Free ("e_e", "bool")) $
Walther@60556
  1121
                         (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1122
                           (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1123
                             (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1124
                               (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1125
                                 (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  1126
                                   (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1127
                                     (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1128
                               Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1129
                             Free ("e_e", "bool")) $
Walther@60556
  1130
                           (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1131
                             (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1132
                               (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1133
                                 (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $ Var (("v_", 0), "real")) $
Walther@60556
  1134
                                   (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  1135
                                     (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1136
                                       (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1137
                                 Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1138
                               Free ("e_e", "bool")) $
Walther@60556
  1139
                             (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1140
                               (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1141
                                 (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1142
                                   (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1143
                                     (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  1144
                                   Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1145
                                 Free ("e_e", "bool")) $
Walther@60556
  1146
                               (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1147
                                 (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1148
                                   (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  1149
                                     (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1150
                                       (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1151
                                   Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1152
                                 Free ("e_e", "bool"))))))]}],
Walther@60556
  1153
                  []),
Walther@60556
  1154
                Node
Walther@60556
  1155
                 ("pqFormula",
Walther@60556
  1156
                  [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1157
                    "pbl_equ_univ_poly_deg2_pq", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d2_polyeq_pq_equation"]], ppc =
Walther@60556
  1158
                    [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1159
                     ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1160
                    prls =
Walther@60556
  1161
                    Repeat
Walther@60556
  1162
                     {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1163
                      [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1164
                       Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1165
                       Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1166
                       Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1167
                      scr = Empty_Prog, srls = Empty},
Walther@60556
  1168
                    thy =
Walther@60556
  1169
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1170
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1171
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  1172
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  1173
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  1174
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  1175
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  1176
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  1177
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  1178
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  1179
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
  1180
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
  1181
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
  1182
                      Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:562},
Walther@60556
  1183
                    where_ =
Walther@60556
  1184
                    [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1185
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1186
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1187
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1188
                             (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Const ("Groups.one_class.one", "real") $
Walther@60556
  1189
                               (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1190
                                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1191
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1192
                         Free ("e_e", "bool")) $
Walther@60556
  1193
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1194
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1195
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1196
                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1197
                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1198
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1199
                         Free ("e_e", "bool"))]}],
Walther@60556
  1200
                  []),
Walther@60556
  1201
                Node
Walther@60556
  1202
                 ("abcFormula",
Walther@60556
  1203
                  [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1204
                    "pbl_equ_univ_poly_deg2_abc", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d2_polyeq_abc_equation"]], ppc =
Walther@60556
  1205
                    [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1206
                     ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1207
                    prls =
Walther@60556
  1208
                    Repeat
Walther@60556
  1209
                     {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1210
                      [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1211
                       Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1212
                       Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1213
                       Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1214
                      scr = Empty_Prog, srls = Empty},
Walther@60556
  1215
                    thy =
Walther@60556
  1216
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1217
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1218
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  1219
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  1220
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  1221
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  1222
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  1223
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  1224
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  1225
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  1226
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
  1227
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
  1228
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
  1229
                      Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:572},
Walther@60556
  1230
                    where_ =
Walther@60556
  1231
                    [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1232
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1233
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1234
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1235
                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1236
                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  1237
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1238
                         Free ("e_e", "bool")) $
Walther@60556
  1239
                       (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1240
                         (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  1241
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  1242
                             (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  1243
                               (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("v_", 0), "real") $
Walther@60556
  1244
                                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  1245
                           Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  1246
                         Free ("e_e", "bool"))]}],
Walther@60556
  1247
                  [])]),
Walther@60556
  1248
             Node
Walther@60556
  1249
              ("degree_3",
Walther@60556
  1250
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1251
                 "pbl_equ_univ_poly_deg3", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "solve_d3_polyeq_equation"]], ppc =
Walther@60556
  1252
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1253
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1254
                 prls =
Walther@60556
  1255
                 Repeat
Walther@60556
  1256
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1257
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1258
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1259
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1260
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1261
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1262
                 thy =
Walther@60556
  1263
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1264
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1265
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1266
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1267
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1268
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1269
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1270
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1271
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1272
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1273
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1274
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1275
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:582},
Walther@60556
  1276
                 where_ =
Walther@60556
  1277
                 [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
  1278
                  Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"),
Walther@60556
  1279
                  Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
  1280
                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit1", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))]}],
Walther@60556
  1281
               []),
Walther@60556
  1282
             Node
Walther@60556
  1283
              ("degree_4",
Walther@60556
  1284
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1285
                 "pbl_equ_univ_poly_deg4", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  1286
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1287
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1288
                 prls =
Walther@60556
  1289
                 Repeat
Walther@60556
  1290
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1291
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1292
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1293
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1294
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1295
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1296
                 thy =
Walther@60556
  1297
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1298
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1299
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1300
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1301
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1302
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1303
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1304
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1305
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1306
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1307
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1308
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1309
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:592},
Walther@60556
  1310
                 where_ =
Walther@60556
  1311
                 [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
  1312
                  Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real"),
Walther@60556
  1313
                  Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
  1314
                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))]}],
Walther@60556
  1315
               []),
Walther@60556
  1316
             Node
Walther@60556
  1317
              ("normalise",
Walther@60556
  1318
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1319
                 "pbl_equ_univ_poly_norm", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "normalise_poly"]], ppc =
Walther@60556
  1320
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1321
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1322
                 prls =
Walther@60556
  1323
                 Repeat
Walther@60556
  1324
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1325
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1326
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1327
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1328
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1329
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1330
                 thy =
Walther@60556
  1331
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1332
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1333
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1334
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1335
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1336
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1337
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1338
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1339
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1340
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1341
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1342
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1343
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:602},
Walther@60556
  1344
                 where_ =
Walther@60556
  1345
                 [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1346
                    (Const ("HOL.Not", "bool \<Rightarrow> bool") $
Walther@60556
  1347
                      (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $
Walther@60556
  1348
                        Free ("e_e", "bool"))) $
Walther@60556
  1349
                    (Const ("HOL.Not", "bool \<Rightarrow> bool") $ (Const ("Poly.is_poly_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")))]}],
Walther@60556
  1350
               [])]),
Walther@60556
  1351
          Node
Walther@60556
  1352
           ("expanded",
Walther@60556
  1353
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1354
              "pbl_equ_univ_expand", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  1355
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1356
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1357
              prls =
Walther@60556
  1358
              Repeat
Walther@60556
  1359
               {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1360
                [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1361
                 Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1362
                 Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1363
                 Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1364
                scr = Empty_Prog, srls = Empty},
Walther@60556
  1365
              thy =
Walther@60556
  1366
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1367
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1368
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1369
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1370
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1371
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1372
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1373
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1374
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1375
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1376
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1377
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1378
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:612},
Walther@60556
  1379
              where_ =
Walther@60556
  1380
              [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool"),
Walther@60556
  1381
               Const ("Poly.is_expanded_in", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")]}],
Walther@60556
  1382
            [Node
Walther@60556
  1383
              ("degree_2",
Walther@60556
  1384
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1385
                 "pbl_equ_univ_expand_deg2", init = ["empty_probl_id"], mathauthors = [], met = [["PolyEq", "complete_square"]], ppc =
Walther@60556
  1386
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1387
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1388
                 prls =
Walther@60556
  1389
                 Repeat
Walther@60556
  1390
                  {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1391
                   [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1392
                    Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1393
                    Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1394
                    Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1395
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1396
                 thy =
Walther@60556
  1397
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1398
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1399
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1400
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1401
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1402
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1403
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1404
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1405
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1406
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1407
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1408
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1409
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq:622},
Walther@60556
  1410
                 where_ =
Walther@60556
  1411
                 [Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("Poly.has_degree_in", "real \<Rightarrow> real \<Rightarrow> real") $ (Const ("Prog_Expr.lhs", "bool \<Rightarrow> real") $ Free ("e_e", "bool")) $ Free ("v_v", "real")) $
Walther@60556
  1412
                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))]}],
Walther@60556
  1413
               [])]),
Walther@60556
  1414
          Node
Walther@60556
  1415
           ("logarithmic",
Walther@60556
  1416
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1417
              "pbl_test_equ_univ_log", init = ["empty_probl_id"], mathauthors = [], met = [["Equation", "solve_log"]], ppc =
Walther@60556
  1418
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1419
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  1420
              prls =
Walther@60556
  1421
              Repeat
Walther@60556
  1422
               {calc = [], erls = Empty, errpatts = [], id = "PolyEq_prls", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1423
                [Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn), Eval ("Prog_Expr.lhs", fn), Eval ("Prog_Expr.rhs", fn), Eval ("Poly.is_expanded_in", fn), Eval ("Poly.is_poly_in", fn),
Walther@60556
  1424
                 Eval ("Poly.has_degree_in", fn), Eval ("Poly.is_polyrat_in", fn), Eval ("HOL.eq", fn), Eval ("RootEq.is_rootTerm_in", fn), Eval ("RatEq.is_ratequation_in", fn),
Walther@60556
  1425
                 Thm ("not_true", "(\<not> True) = False"), Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"),
Walther@60556
  1426
                 Thm ("or_true", "(?a \<or> True) = True"), Thm ("or_false", "(?a \<or> False) = ?a")],
Walther@60556
  1427
                scr = Empty_Prog, srls = Empty},
Walther@60556
  1428
              thy =
Walther@60556
  1429
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1430
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1431
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1432
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1433
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1434
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1435
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1436
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1437
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1438
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1439
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1440
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1441
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.LogExp:48},
Walther@60556
  1442
              where_ =
Walther@60556
  1443
              [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1444
                 (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("LogExp.alog", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $ Var (("v_v", 0), "real")) $ Var (("b", 0), "real")) $
Walther@60556
  1445
                 Free ("e_e", "bool")]}],
Walther@60556
  1446
            [])]),
Walther@60556
  1447
       Node
Walther@60556
  1448
        ("makeFunctionTo",
Walther@60556
  1449
         [{cas = NONE, guh = "pbl_equ_fromfun", init = ["empty_probl_id"], mathauthors = [], met = [["Equation", "fromFunction"]], ppc =
Walther@60556
  1450
           [("#Given", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("fu_n", "bool"))), ("#Given", (Const ("Equation.substitution", "bool \<Rightarrow> una"), Free ("su_b", "bool"))),
Walther@60556
  1451
            ("#Find", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("equ'''", "bool")))],
Walther@60556
  1452
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1453
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1454
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1455
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1456
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1457
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1458
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1459
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1460
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1461
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1462
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1463
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1464
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1465
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1466
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:144},
Walther@60556
  1467
           where_ = []}],
Walther@60556
  1468
         []),
Walther@60556
  1469
       Node
Walther@60556
  1470
        ("diophantine",
Walther@60556
  1471
         [{cas =
Walther@60556
  1472
           SOME
Walther@60556
  1473
            (
Walther@60556
  1474
               Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $
Walther@60556
  1475
                 (Const ("Product_Type.prod.case_prod", "(bool \<Rightarrow> int \<Rightarrow> bool \<times> real) \<Rightarrow> bool \<times> int \<Rightarrow> bool \<times> real") $
Walther@60556
  1476
                   Abs ("x", "bool", Abs ("y", "int", Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Bound 1 $ (Const ("Int.ring_1_class.of_int", "int \<Rightarrow> real") $ Bound 0))) $
Walther@60556
  1477
                   (Const ("Product_Type.Pair", "bool \<Rightarrow> int \<Rightarrow> bool \<times> int") $ Free ("e_e", "bool") $ Free ("v_v", "int")))
Walther@60556
  1478
               ),
Walther@60556
  1479
           guh = "pbl_equ_dio", init = ["empty_probl_id"], mathauthors = [], met = [["LinEq", "solve_lineq_equation"]], ppc =
Walther@60556
  1480
           [("#Given", (Const ("Input_Descript.boolTestGiven", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.intTestGiven", "int \<Rightarrow> una"), Free ("v_v", "int"))),
Walther@60556
  1481
            ("#Find", (Const ("Input_Descript.boolTestFind", "bool \<Rightarrow> una"), Free ("s_s", "bool")))],
Walther@60556
  1482
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1483
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1484
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1485
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1486
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1487
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1488
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1489
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1490
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1491
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1492
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1493
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1494
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1495
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1496
             Isac.Diff, Isac.Test, Isac.DiophantEq:34},
Walther@60556
  1497
           where_ = []}],
Walther@60556
  1498
         [])]),
Walther@60556
  1499
    Node
Walther@60556
  1500
     ("function",
Walther@60556
  1501
      [{cas = NONE, guh = "pbl_fun", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  1502
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1503
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1504
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1505
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1506
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1507
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1508
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  1509
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  1510
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  1511
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  1512
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  1513
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  1514
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  1515
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff:184},
Walther@60556
  1516
        where_ = []}],
Walther@60556
  1517
      [Node
Walther@60556
  1518
        ("derivative_of",
Walther@60556
  1519
         [{cas = SOME (Const ("Diff.Diff", "real \<times> real \<Rightarrow> real") $ (Const ("Product_Type.Pair", "real \<Rightarrow> real \<Rightarrow> real \<times> real") $ Free ("f_f", "real") $ Free ("v_v", "real"))), guh = "pbl_fun_deriv", init =
Walther@60556
  1520
           ["empty_probl_id"], mathauthors = [], met = [["diff", "differentiate_on_R"], ["diff", "after_simplification"]], ppc =
Walther@60556
  1521
           [("#Given", (Const ("Input_Descript.functionTerm", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Input_Descript.differentiateFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1522
            ("#Find", (Const ("Input_Descript.derivative", "real \<Rightarrow> una"), Free ("f_f'", "real")))],
Walther@60556
  1523
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1524
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1525
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1526
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1527
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1528
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1529
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1530
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1531
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1532
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1533
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1534
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1535
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1536
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1537
             Isac.Diff:194},
Walther@60556
  1538
           where_ = []}],
Walther@60556
  1539
         [Node
Walther@60556
  1540
           ("named",
Walther@60556
  1541
            [{cas = SOME (Const ("Diff.Differentiate", "bool \<times> real \<Rightarrow> bool") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("f_f", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  1542
              "pbl_fun_deriv_nam", init = ["empty_probl_id"], mathauthors = [], met = [["diff", "differentiate_equality"]], ppc =
Walther@60556
  1543
              [("#Given", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("f_f", "bool"))), ("#Given", (Const ("Input_Descript.differentiateFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1544
               ("#Find", (Const ("Diff.derivativeEq", "bool \<Rightarrow> una"), Free ("f_f'", "bool")))],
Walther@60556
  1545
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1546
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1547
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1548
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1549
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1550
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1551
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1552
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1553
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1554
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1555
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1556
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1557
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1558
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1559
                Isac.Diff:204},
Walther@60556
  1560
              where_ = []}],
Walther@60556
  1561
            [])]),
Walther@60556
  1562
       Node
Walther@60556
  1563
        ("integrate",
Walther@60556
  1564
         [{cas = SOME (Const ("Integrate.Integrate", "real \<times> real \<Rightarrow> real") $ (Const ("Product_Type.Pair", "real \<Rightarrow> real \<Rightarrow> real \<times> real") $ Free ("f_f", "real") $ Free ("v_v", "real"))), guh = "pbl_fun_integ",
Walther@60556
  1565
           init = ["empty_probl_id"], mathauthors = [], met = [["diff", "integration"]], ppc =
Walther@60556
  1566
           [("#Given", (Const ("Input_Descript.functionTerm", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Integrate.integrateBy", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1567
            ("#Find", (Const ("Integrate.antiDerivative", "real \<Rightarrow> una"), Free ("F_F", "real")))],
Walther@60556
  1568
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1569
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1570
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1571
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1572
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1573
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1574
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1575
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1576
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1577
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1578
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1579
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1580
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1581
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1582
             Isac.Diff, Isac.Integrate:127},
Walther@60556
  1583
           where_ = []}],
Walther@60556
  1584
         [Node
Walther@60556
  1585
           ("named",
Walther@60556
  1586
            [{cas = SOME (Const ("Integrate.Integrate", "real \<times> real \<Rightarrow> real") $ (Const ("Product_Type.Pair", "real \<Rightarrow> real \<Rightarrow> real \<times> real") $ Free ("f_f", "real") $ Free ("v_v", "real"))), guh =
Walther@60556
  1587
              "pbl_fun_integ_nam", init = ["empty_probl_id"], mathauthors = [], met = [["diff", "integration", "named"]], ppc =
Walther@60556
  1588
              [("#Given", (Const ("Input_Descript.functionTerm", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Integrate.integrateBy", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1589
               ("#Find", (Const ("Integrate.antiDerivativeName", "(real \<Rightarrow> real) \<Rightarrow> una"), Free ("F_F", "real \<Rightarrow> real")))],
Walther@60556
  1590
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1591
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1592
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1593
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1594
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1595
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1596
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1597
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1598
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1599
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1600
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1601
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1602
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1603
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1604
                Isac.Diff, Isac.Integrate:137},
Walther@60556
  1605
              where_ = []}],
Walther@60556
  1606
            [])]),
Walther@60556
  1607
       Node
Walther@60556
  1608
        ("maximum_of",
Walther@60556
  1609
         [{cas = NONE, guh = "pbl_fun_max", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  1610
           [("#Given", (Const ("Input_Descript.fixedValues", "bool list \<Rightarrow> nam"), Free ("f_ix", "bool list"))), ("#Find", (Const ("Input_Descript.maximum", "real \<Rightarrow> toreal"), Free ("m_m", "real"))),
Walther@60556
  1611
            ("#Find", (Const ("Input_Descript.valuesFor", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Relate", (Const ("Input_Descript.relations", "bool list \<Rightarrow> una"), Free ("r_s", "bool list")))],
Walther@60556
  1612
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1613
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1614
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1615
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1616
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1617
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1618
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1619
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1620
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1621
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1622
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1623
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1624
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1625
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1626
             Isac.Diff, Isac.Diff_App:255},
Walther@60556
  1627
           where_ = []}],
Walther@60556
  1628
         [Node
Walther@60556
  1629
           ("on_interval",
Walther@60556
  1630
            [{cas = NONE, guh = "pbl_fun_max_interv", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  1631
              [("#Given", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("t_t", "bool"))), ("#Given", (Const ("Input_Descript.boundVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1632
               ("#Given", (Const ("Input_Descript.interval", "real set \<Rightarrow> una"), Free ("i_tv", "real set"))), ("#Find", (Const ("Input_Descript.maxArgument", "bool \<Rightarrow> toreal"), Free ("v_0", "bool")))],
Walther@60556
  1633
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1634
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1635
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1636
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1637
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1638
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1639
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1640
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1641
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1642
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1643
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1644
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1645
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1646
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1647
                Isac.Diff, Isac.Diff_App:295},
Walther@60556
  1648
              where_ = []}],
Walther@60556
  1649
            [])]),
Walther@60556
  1650
       Node
Walther@60556
  1651
        ("make",
Walther@60556
  1652
         [{cas = NONE, guh = "pbl_fun_make", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  1653
           [("#Given", (Const ("Input_Descript.functionOf", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Input_Descript.boundVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1654
            ("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("eqs", "bool list"))), ("#Find", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("f_1", "bool")))],
Walther@60556
  1655
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1656
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1657
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1658
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1659
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1660
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1661
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1662
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1663
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1664
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1665
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1666
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1667
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1668
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1669
             Isac.Diff, Isac.Diff_App:265},
Walther@60556
  1670
           where_ = []}],
Walther@60556
  1671
         [Node
Walther@60556
  1672
           ("by_explicit",
Walther@60556
  1673
            [{cas = NONE, guh = "pbl_fun_max_expl", init = ["empty_probl_id"], mathauthors = [], met = [["Diff_App", "make_fun_by_explicit"]], ppc =
Walther@60556
  1674
              [("#Given", (Const ("Input_Descript.functionOf", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Input_Descript.boundVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1675
               ("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("eqs", "bool list"))), ("#Find", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("f_1", "bool")))],
Walther@60556
  1676
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1677
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1678
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1679
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1680
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1681
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1682
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1683
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1684
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1685
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1686
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1687
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1688
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1689
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1690
                Isac.Diff, Isac.Diff_App:275},
Walther@60556
  1691
              where_ = []}],
Walther@60556
  1692
            []),
Walther@60556
  1693
          Node
Walther@60556
  1694
           ("by_new_variable",
Walther@60556
  1695
            [{cas = NONE, guh = "pbl_fun_max_newvar", init = ["empty_probl_id"], mathauthors = [], met = [["Diff_App", "make_fun_by_new_variable"]], ppc =
Walther@60556
  1696
              [("#Given", (Const ("Input_Descript.functionOf", "real \<Rightarrow> una"), Free ("f_f", "real"))), ("#Given", (Const ("Input_Descript.boundVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  1697
               ("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("eqs", "bool list"))), ("#Find", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("f_1", "bool")))],
Walther@60556
  1698
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1699
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1700
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1701
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1702
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1703
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1704
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1705
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1706
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1707
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1708
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1709
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1710
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1711
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1712
                Isac.Diff, Isac.Diff_App:285},
Walther@60556
  1713
              where_ = []}],
Walther@60556
  1714
            [])])]),
Walther@60556
  1715
    Node
Walther@60556
  1716
     ("system",
Walther@60556
  1717
      [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys", init = ["empty_probl_id"], mathauthors =
Walther@60556
  1718
        [], met = [], ppc =
Walther@60556
  1719
        [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))), ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))),
Walther@60556
  1720
         ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1721
        prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1722
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1723
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1724
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1725
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1726
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1727
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  1728
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  1729
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  1730
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  1731
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  1732
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  1733
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  1734
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem:188},
Walther@60556
  1735
        where_ = []}],
Walther@60556
  1736
      [Node
Walther@60556
  1737
        ("LINEAR",
Walther@60556
  1738
         [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin", init = ["empty_probl_id"],
Walther@60556
  1739
           mathauthors = [], met = [], ppc =
Walther@60556
  1740
           [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))), ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))),
Walther@60556
  1741
            ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1742
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1743
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1744
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1745
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1746
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1747
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1748
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1749
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1750
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1751
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1752
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1753
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1754
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1755
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1756
             Isac.Diff, Isac.Integrate, Isac.EqSystem:198},
Walther@60556
  1757
           where_ = []}],
Walther@60556
  1758
         [Node
Walther@60556
  1759
           ("2x2",
Walther@60556
  1760
            [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_2x2", init = ["empty_probl_id"],
Walther@60556
  1761
              mathauthors = [], met = [], ppc =
Walther@60556
  1762
              [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1763
               ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1764
              prls =
Walther@60556
  1765
              Repeat
Walther@60556
  1766
               {calc = [], erls = Empty, errpatts = [], id = "prls_2x2_linear_system", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1767
                [Thm ("LENGTH_CONS", "Length (?x # ?xs) = 1 + Length ?xs"), Thm ("LENGTH_NIL", "Length [] = 0"), Eval ("Groups.plus_class.plus", fn), Eval ("HOL.eq", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  1768
              thy =
Walther@60556
  1769
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1770
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1771
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1772
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1773
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1774
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1775
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1776
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1777
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1778
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1779
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1780
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1781
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1782
                Isac.Diff, Isac.Integrate, Isac.EqSystem:208},
Walther@60556
  1783
              where_ =
Walther@60556
  1784
              [Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "bool list \<Rightarrow> real") $ Free ("e_s", "bool list")) $
Walther@60556
  1785
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))),
Walther@60556
  1786
               Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "?'a list \<Rightarrow> real") $ Free ("v_s", "?'a list")) $
Walther@60556
  1787
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))]}],
Walther@60556
  1788
            [Node
Walther@60556
  1789
              ("triangular",
Walther@60556
  1790
               [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_2x2_tri", init =
Walther@60556
  1791
                 ["empty_probl_id"], mathauthors = [], met = [["EqSystem", "top_down_substitution", "2x2"]], ppc =
Walther@60556
  1792
                 [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1793
                  ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1794
                 prls =
Walther@60556
  1795
                 Repeat
Walther@60556
  1796
                  {calc = [], erls =
Walther@60556
  1797
                   Repeat
Walther@60556
  1798
                    {calc = [], erls = Empty, errpatts = [], id = "erls_prls_triangular", preconds = [], rew_ord = ("Rewrite_Ord.id_empty", fn), rules =
Walther@60556
  1799
                     [Eval ("Orderings.ord_class.less", fn), Eval ("Groups.plus_class.plus", fn), Eval ("EqSystem.occur_exactly_in", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  1800
                   errpatts = [], id = "prls_triangular", preconds = [], rew_ord = ("Rewrite_Ord.id_empty", fn), rules =
Walther@60556
  1801
                   [Thm ("NTH_CONS", "1 < ?n \<Longrightarrow> NTH ?n (?x # ?xs) = NTH (?n + - 1) ?xs"), Eval ("Groups.plus_class.plus", fn), Thm ("NTH_NIL", "NTH 1 (?x # ?xs) = ?x"), Thm ("tl_Cons", "tl (?x # ?xs) = ?xs"),
Walther@60556
  1802
                    Thm ("tl_Nil", "tl [] = []"), Eval ("EqSystem.occur_exactly_in", fn)],
Walther@60556
  1803
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1804
                 thy =
Walther@60556
  1805
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1806
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1807
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1808
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1809
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1810
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1811
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1812
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1813
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1814
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1815
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1816
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1817
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  1818
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem:218},
Walther@60556
  1819
                 where_ =
Walther@60556
  1820
                 [Const ("EqSystem.occur_exactly_in", "real list \<Rightarrow> real list \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("List.list.tl", "real list \<Rightarrow> real list") $ Free ("v_s", "real list")) $ Free ("v_s", "real list") $
Walther@60556
  1821
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $ Const ("Groups.one_class.one", "real") $ Free ("e_s", "bool list")),
Walther@60556
  1822
                  Const ("EqSystem.occur_exactly_in", "real list \<Rightarrow> real list \<Rightarrow> bool \<Rightarrow> bool") $ Free ("v_s", "real list") $ Free ("v_s", "real list") $
Walther@60556
  1823
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $ (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))) $
Walther@60556
  1824
                      Free ("e_s", "bool list"))]}],
Walther@60556
  1825
               []),
Walther@60556
  1826
             Node
Walther@60556
  1827
              ("normalise",
Walther@60556
  1828
               [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_2x2_norm", init =
Walther@60556
  1829
                 ["empty_probl_id"], mathauthors = [], met = [["EqSystem", "normalise", "2x2"]], ppc =
Walther@60556
  1830
                 [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1831
                  ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1832
                 prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1833
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1834
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1835
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1836
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1837
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1838
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1839
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1840
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1841
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1842
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1843
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1844
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1845
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  1846
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem:228},
Walther@60556
  1847
                 where_ = []}],
Walther@60556
  1848
               [])]),
Walther@60556
  1849
          Node
Walther@60556
  1850
           ("3x3",
Walther@60556
  1851
            [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_3x3", init = ["empty_probl_id"],
Walther@60556
  1852
              mathauthors = [], met = [], ppc =
Walther@60556
  1853
              [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1854
               ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1855
              prls =
Walther@60556
  1856
              Repeat
Walther@60556
  1857
               {calc = [], erls = Empty, errpatts = [], id = "prls_3x3_linear_system", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1858
                [Thm ("LENGTH_CONS", "Length (?x # ?xs) = 1 + Length ?xs"), Thm ("LENGTH_NIL", "Length [] = 0"), Eval ("Groups.plus_class.plus", fn), Eval ("HOL.eq", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  1859
              thy =
Walther@60556
  1860
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1861
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1862
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1863
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1864
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1865
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1866
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1867
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1868
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1869
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1870
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1871
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1872
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1873
                Isac.Diff, Isac.Integrate, Isac.EqSystem:238},
Walther@60556
  1874
              where_ =
Walther@60556
  1875
              [Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "bool list \<Rightarrow> real") $ Free ("e_s", "bool list")) $
Walther@60556
  1876
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit1", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))),
Walther@60556
  1877
               Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "?'a list \<Rightarrow> real") $ Free ("v_s", "?'a list")) $
Walther@60556
  1878
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit1", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))]}],
Walther@60556
  1879
            []),
Walther@60556
  1880
          Node
Walther@60556
  1881
           ("4x4",
Walther@60556
  1882
            [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_4x4", init = ["empty_probl_id"],
Walther@60556
  1883
              mathauthors = [], met = [], ppc =
Walther@60556
  1884
              [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1885
               ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1886
              prls =
Walther@60556
  1887
              Repeat
Walther@60556
  1888
               {calc = [], erls = Empty, errpatts = [], id = "prls_4x4_linear_system", preconds = [], rew_ord = ("dummy_ord", fn), rules =
Walther@60556
  1889
                [Thm ("LENGTH_CONS", "Length (?x # ?xs) = 1 + Length ?xs"), Thm ("LENGTH_NIL", "Length [] = 0"), Eval ("Groups.plus_class.plus", fn), Eval ("HOL.eq", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  1890
              thy =
Walther@60556
  1891
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1892
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1893
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1894
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1895
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1896
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1897
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1898
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1899
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  1900
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  1901
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  1902
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  1903
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  1904
                Isac.Diff, Isac.Integrate, Isac.EqSystem:248},
Walther@60556
  1905
              where_ =
Walther@60556
  1906
              [Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "bool list \<Rightarrow> real") $ Free ("e_s", "bool list")) $
Walther@60556
  1907
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))),
Walther@60556
  1908
               Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $ (Const ("ListC.Length", "?'a list \<Rightarrow> real") $ Free ("v_s", "?'a list")) $
Walther@60556
  1909
                 (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))]}],
Walther@60556
  1910
            [Node
Walther@60556
  1911
              ("triangular",
Walther@60556
  1912
               [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_4x4_tri", init =
Walther@60556
  1913
                 ["empty_probl_id"], mathauthors = [], met = [["EqSystem", "top_down_substitution", "4x4"]], ppc =
Walther@60556
  1914
                 [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1915
                  ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1916
                 prls =
Walther@60556
  1917
                 Repeat
Walther@60556
  1918
                  {calc = [], erls =
Walther@60556
  1919
                   Repeat
Walther@60556
  1920
                    {calc = [], erls = Empty, errpatts = [], id = "erls_prls_triangular", preconds = [], rew_ord = ("Rewrite_Ord.id_empty", fn), rules =
Walther@60556
  1921
                     [Eval ("Orderings.ord_class.less", fn), Eval ("Groups.plus_class.plus", fn), Eval ("EqSystem.occur_exactly_in", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  1922
                   errpatts = [], id = "prls_tri_4x4_lin_sys", preconds = [], rew_ord = ("Rewrite_Ord.id_empty", fn), rules =
Walther@60556
  1923
                   [Thm ("NTH_CONS", "1 < ?n \<Longrightarrow> NTH ?n (?x # ?xs) = NTH (?n + - 1) ?xs"), Eval ("Groups.plus_class.plus", fn), Thm ("NTH_NIL", "NTH 1 (?x # ?xs) = ?x"), Thm ("tl_Cons", "tl (?x # ?xs) = ?xs"),
Walther@60556
  1924
                    Thm ("tl_Nil", "tl [] = []"), Eval ("EqSystem.occur_exactly_in", fn), Eval ("Prog_Expr.occurs_in", fn)],
Walther@60556
  1925
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  1926
                 thy =
Walther@60556
  1927
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1928
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1929
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1930
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1931
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1932
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1933
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1934
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1935
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1936
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1937
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1938
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1939
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  1940
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem:258},
Walther@60556
  1941
                 where_ =
Walther@60556
  1942
                 [Const ("Prog_Expr.occurs_in", "real \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("ListC.NTH", "real \<Rightarrow> real list \<Rightarrow> real") $ Const ("Groups.one_class.one", "real") $ Free ("v_s", "real list")) $
Walther@60556
  1943
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $ Const ("Groups.one_class.one", "real") $ Free ("e_s", "bool list")),
Walther@60556
  1944
                  Const ("Prog_Expr.occurs_in", "real \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1945
                    (Const ("ListC.NTH", "real \<Rightarrow> real list \<Rightarrow> real") $ (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))) $
Walther@60556
  1946
                      Free ("v_s", "real list")) $
Walther@60556
  1947
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $ (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))) $
Walther@60556
  1948
                      Free ("e_s", "bool list")),
Walther@60556
  1949
                  Const ("Prog_Expr.occurs_in", "real \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1950
                    (Const ("ListC.NTH", "real \<Rightarrow> real list \<Rightarrow> real") $ (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit1", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))) $
Walther@60556
  1951
                      Free ("v_s", "real list")) $
Walther@60556
  1952
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $ (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit1", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))) $
Walther@60556
  1953
                      Free ("e_s", "bool list")),
Walther@60556
  1954
                  Const ("Prog_Expr.occurs_in", "real \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  1955
                    (Const ("ListC.NTH", "real \<Rightarrow> real list \<Rightarrow> real") $
Walther@60556
  1956
                      (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  1957
                      Free ("v_s", "real list")) $
Walther@60556
  1958
                    (Const ("ListC.NTH", "real \<Rightarrow> bool list \<Rightarrow> bool") $
Walther@60556
  1959
                      (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  1960
                      Free ("e_s", "bool list"))]}],
Walther@60556
  1961
               []),
Walther@60556
  1962
             Node
Walther@60556
  1963
              ("normalise",
Walther@60556
  1964
               [{cas = SOME (Const ("EqSystem.solveSystem", "bool list \<Rightarrow> real list \<Rightarrow> bool list") $ Free ("e_s", "bool list") $ Free ("v_s", "real list")), guh = "pbl_equsys_lin_4x4_norm", init =
Walther@60556
  1965
                 ["empty_probl_id"], mathauthors = [], met = [["EqSystem", "normalise", "4x4"]], ppc =
Walther@60556
  1966
                 [("#Given", (Const ("Input_Descript.equalities", "bool list \<Rightarrow> tobooll"), Free ("e_s", "bool list"))),
Walther@60556
  1967
                  ("#Given", (Const ("EqSystem.solveForVars", "real list \<Rightarrow> toreall"), Free ("v_s", "real list"))), ("#Find", (Const ("EqSystem.solution", "bool list \<Rightarrow> toreall"), Free ("ss'''", "bool list")))],
Walther@60556
  1968
                 prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1969
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  1970
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1971
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1972
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1973
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1974
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  1975
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  1976
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  1977
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  1978
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  1979
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  1980
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  1981
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  1982
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem:268},
Walther@60556
  1983
                 where_ = []}],
Walther@60556
  1984
               [])])])]),
Walther@60556
  1985
    Node
Walther@60556
  1986
     ("Biegelinien",
Walther@60556
  1987
      [{cas = NONE, guh = "pbl_bieg", init = ["empty_probl_id"], mathauthors = [], met = [["IntegrierenUndKonstanteBestimmen2"]], ppc =
Walther@60556
  1988
        [("#Given", (Const ("Biegelinie.Traegerlaenge", "real \<Rightarrow> una"), Free ("l_l", "real"))), ("#Given", (Const ("Biegelinie.Streckenlast", "real \<Rightarrow> una"), Free ("q_q", "real"))),
Walther@60556
  1989
         ("#Find", (Const ("Biegelinie.Biegelinie", "(real \<Rightarrow> real) \<Rightarrow> una"), Free ("b_b", "real \<Rightarrow> real"))), ("#Relate", (Const ("Biegelinie.Randbedingungen", "bool list \<Rightarrow> una"), Free ("r_b", "bool list")))],
Walther@60556
  1990
        prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  1991
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  1992
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  1993
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  1994
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  1995
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  1996
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  1997
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  1998
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  1999
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2000
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2001
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2002
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  2003
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Integrate, Isac.EqSystem,
Walther@60556
  2004
          Isac.Biegelinie:74},
Walther@60556
  2005
        where_ = []}],
Walther@60556
  2006
      [Node
Walther@60556
  2007
        ("MomentBestimmte",
Walther@60556
  2008
         [{cas = NONE, guh = "pbl_bieg_mom", init = ["empty_probl_id"], mathauthors = [], met = [["IntegrierenUndKonstanteBestimmen"]], ppc =
Walther@60556
  2009
           [("#Given", (Const ("Biegelinie.Traegerlaenge", "real \<Rightarrow> una"), Free ("l_l", "real"))), ("#Given", (Const ("Biegelinie.Streckenlast", "real \<Rightarrow> una"), Free ("q_q", "real"))),
Walther@60556
  2010
            ("#Find", (Const ("Biegelinie.Biegelinie", "(real \<Rightarrow> real) \<Rightarrow> una"), Free ("b_b", "real \<Rightarrow> real"))),
Walther@60556
  2011
            ("#Relate", (Const ("Biegelinie.RandbedingungenBiegung", "bool list \<Rightarrow> una"), Free ("r_b", "bool list"))),
Walther@60556
  2012
            ("#Relate", (Const ("Biegelinie.RandbedingungenMoment", "bool list \<Rightarrow> una"), Free ("r_m", "bool list")))],
Walther@60556
  2013
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2014
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2015
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2016
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2017
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2018
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2019
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2020
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2021
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2022
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2023
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2024
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2025
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2026
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2027
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:84},
Walther@60556
  2028
           where_ = []}],
Walther@60556
  2029
         []),
Walther@60556
  2030
       Node
Walther@60556
  2031
        ("MomentGegebene",
Walther@60556
  2032
         [{cas = NONE, guh = "pbl_bieg_momg", init = ["empty_probl_id"], mathauthors = [], met = [["IntegrierenUndKonstanteBestimmen", "2xIntegrieren"]], ppc = [], prls =
Walther@60556
  2033
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2034
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2035
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2036
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2037
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2038
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2039
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2040
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2041
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2042
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2043
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2044
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2045
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2046
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2047
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:94},
Walther@60556
  2048
           where_ = []}],
Walther@60556
  2049
         []),
Walther@60556
  2050
       Node
Walther@60556
  2051
        ("einfache",
Walther@60556
  2052
         [{cas = NONE, guh = "pbl_bieg_einf", init = ["empty_probl_id"], mathauthors = [], met = [["IntegrierenUndKonstanteBestimmen", "4x4System"]], ppc = [], prls =
Walther@60556
  2053
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2054
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2055
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2056
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2057
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2058
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2059
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2060
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2061
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2062
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2063
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2064
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2065
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2066
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2067
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:104},
Walther@60556
  2068
           where_ = []}],
Walther@60556
  2069
         []),
Walther@60556
  2070
       Node
Walther@60556
  2071
        ("QuerkraftUndMomentBestimmte",
Walther@60556
  2072
         [{cas = NONE, guh = "pbl_bieg_momquer", init = ["empty_probl_id"], mathauthors = [], met = [["IntegrierenUndKonstanteBestimmen", "1xIntegrieren"]], ppc = [], prls =
Walther@60556
  2073
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2074
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2075
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2076
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2077
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2078
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2079
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2080
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2081
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2082
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2083
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2084
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2085
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2086
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2087
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:114},
Walther@60556
  2088
           where_ = []}],
Walther@60556
  2089
         []),
Walther@60556
  2090
       Node
Walther@60556
  2091
        ("vonBelastungZu",
Walther@60556
  2092
         [{cas = NONE, guh = "pbl_bieg_vonq", init = ["empty_probl_id"], mathauthors = [], met = [["Biegelinien", "ausBelastung"]], ppc =
Walther@60556
  2093
           [("#Given", (Const ("Biegelinie.Streckenlast", "real \<Rightarrow> una"), Free ("q_q", "real"))), ("#Given", (Const ("Biegelinie.FunktionsVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2094
            ("#Find", (Const ("Biegelinie.Funktionen", "bool list \<Rightarrow> una"), Free ("funs'''", "bool list")))],
Walther@60556
  2095
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2096
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2097
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2098
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2099
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2100
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2101
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2102
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2103
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2104
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2105
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2106
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2107
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2108
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2109
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:124},
Walther@60556
  2110
           where_ = []}],
Walther@60556
  2111
         []),
Walther@60556
  2112
       Node
Walther@60556
  2113
        ("setzeRandbedingungen",
Walther@60556
  2114
         [{cas = NONE, guh = "pbl_bieg_randbed", init = ["empty_probl_id"], mathauthors = [], met = [["Biegelinien", "setzeRandbedingungenEin"]], ppc =
Walther@60556
  2115
           [("#Given", (Const ("Biegelinie.Funktionen", "bool list \<Rightarrow> una"), Free ("fun_s", "bool list"))), ("#Given", (Const ("Biegelinie.Randbedingungen", "bool list \<Rightarrow> una"), Free ("r_b", "bool list"))),
Walther@60556
  2116
            ("#Find", (Const ("Biegelinie.Gleichungen", "bool list \<Rightarrow> una"), Free ("equs'''", "bool list")))],
Walther@60556
  2117
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2118
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2119
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2120
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2121
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2122
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2123
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2124
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2125
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2126
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2127
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2128
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2129
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2130
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2131
             Isac.Diff, Isac.Integrate, Isac.EqSystem, Isac.Biegelinie:134},
Walther@60556
  2132
           where_ = []}],
Walther@60556
  2133
         [])]),
Walther@60556
  2134
    Node
Walther@60556
  2135
     ("Berechnung",
Walther@60556
  2136
      [{cas = NONE, guh = "pbl_algein", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2137
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2138
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2139
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2140
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2141
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2142
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2143
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2144
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2145
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2146
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2147
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2148
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2149
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational,
Walther@60556
  2150
          Isac.AlgEin:30},
Walther@60556
  2151
        where_ = []}],
Walther@60556
  2152
      [Node
Walther@60556
  2153
        ("numerischSymbolische",
Walther@60556
  2154
         [{cas = NONE, guh = "pbl_algein_numsym", init = ["empty_probl_id"], mathauthors = [], met = [["Berechnung", "erstNumerisch"], ["Berechnung", "erstSymbolisch"]], ppc =
Walther@60556
  2155
           [("#Given", (Const ("AlgEin.KantenLaenge", "bool \<Rightarrow> una"), Free ("k_k", "bool"))), ("#Given", (Const ("AlgEin.Querschnitt", "bool \<Rightarrow> una"), Free ("q__q", "bool"))),
Walther@60556
  2156
            ("#Given", (Const ("AlgEin.KantenUnten", "bool list \<Rightarrow> una"), Free ("u_u", "bool list"))), ("#Given", (Const ("AlgEin.KantenSenkrecht", "bool list \<Rightarrow> una"), Free ("s_s", "bool list"))),
Walther@60556
  2157
            ("#Given", (Const ("AlgEin.KantenOben", "bool list \<Rightarrow> una"), Free ("o_o", "bool list"))), ("#Find", (Const ("AlgEin.GesamtLaenge", "real \<Rightarrow> una"), Free ("l_l", "real")))],
Walther@60556
  2158
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2159
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2160
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2161
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2162
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2163
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2164
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2165
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2166
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2167
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2168
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2169
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2170
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2171
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.AlgEin:40},
Walther@60556
  2172
           where_ = []}],
Walther@60556
  2173
         [])]),
Walther@60556
  2174
    Node
Walther@60556
  2175
     ("Programming",
Walther@60556
  2176
      [{cas = NONE, guh = "pbl_Programming", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2177
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2178
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2179
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2180
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2181
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2182
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2183
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2184
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2185
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2186
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2187
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2188
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2189
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational,
Walther@60556
  2190
          Isac.InsSort:124},
Walther@60556
  2191
        where_ = []}],
Walther@60556
  2192
      [Node
Walther@60556
  2193
        ("SORT",
Walther@60556
  2194
         [{cas = NONE, guh = "pbl_Prog_sort", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2195
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2196
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2197
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2198
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2199
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2200
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2201
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2202
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2203
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2204
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2205
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2206
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2207
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2208
             Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.InsSort:134},
Walther@60556
  2209
           where_ = []}],
Walther@60556
  2210
         [Node
Walther@60556
  2211
           ("insertion",
Walther@60556
  2212
            [{cas = SOME (Const ("InsSort.Sort", "int xlist \<Rightarrow> int xlist") $ Free ("u_u", "int xlist")), guh = "pbl_Prog_sort_ins", init = ["empty_probl_id"], mathauthors = [], met =
Walther@60556
  2213
              [["Programming", "SORT", "insertion_steps"]], ppc =
Walther@60556
  2214
              [("#Given", (Const ("InsSort.unsorted", "int xlist \<Rightarrow> unl"), Free ("u_u", "int xlist"))), ("#Find", (Const ("InsSort.sorted", "int xlist \<Rightarrow> unl"), Free ("s_s", "int xlist")))], prls =
Walther@60556
  2215
              Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2216
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2217
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2218
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2219
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2220
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2221
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2222
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2223
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2224
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2225
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2226
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2227
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2228
                Isac.Poly, Isac.GCD_Poly_ML, Isac.Rational, Isac.InsSort:144},
Walther@60556
  2229
              where_ = []}],
Walther@60556
  2230
            [])])]),
Walther@60556
  2231
    Node
Walther@60556
  2232
     ("test",
Walther@60556
  2233
      [{cas = NONE, guh = "pbl_test", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2234
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2235
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2236
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2237
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2238
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2239
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2240
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2241
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2242
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2243
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2244
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2245
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2246
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  2247
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:397},
Walther@60556
  2248
        where_ = []}],
Walther@60556
  2249
      [Node
Walther@60556
  2250
        ("equation",
Walther@60556
  2251
         [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh = "pbl_test_equ",
Walther@60556
  2252
           init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2253
           [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2254
            ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2255
           prls =
Walther@60556
  2256
           Repeat
Walther@60556
  2257
            {calc =
Walther@60556
  2258
             [("is_num", ("Prog_Expr.is_num", fn)), ("matches", ("Prog_Expr.matches", fn)), ("PLUS", ("Groups.plus_class.plus", fn)), ("TIMES", ("Groups.times_class.times", fn)),
Walther@60556
  2259
              ("POWER", ("BaseDefinitions.realpow", fn)), ("le", ("Orderings.ord_class.less", fn)), ("leq", ("Orderings.ord_class.less_eq", fn)), ("ident", ("Prog_Expr.ident", fn))],
Walther@60556
  2260
             erls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, errpatts = [], id = "matches",
Walther@60556
  2261
             preconds = [], rew_ord = ("termlessI", fn), rules =
Walther@60556
  2262
             [Thm ("refl", "?t = ?t"), Thm ("order_refl", "?x \<le> ?x"), Thm ("radd_left_cancel_le", "(?k + ?m \<le> ?k + ?n) = (?m \<le> ?n)"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
  2263
              Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"),
Walther@60556
  2264
              Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("and_commute", "(?a \<and> ?b) = (?b \<and> ?a)"), Thm ("or_commute", "(?a \<or> ?b) = (?b \<or> ?a)"), Eval ("Prog_Expr.is_num", fn), Eval ("Prog_Expr.matches", fn),
Walther@60556
  2265
              Eval ("Groups.plus_class.plus", fn), Eval ("Groups.times_class.times", fn), Eval ("BaseDefinitions.realpow", fn), Eval ("Orderings.ord_class.less", fn), Eval ("Orderings.ord_class.less_eq", fn),
Walther@60556
  2266
              Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn)],
Walther@60556
  2267
             scr = Empty_Prog, srls = Empty},
Walther@60556
  2268
           thy =
Walther@60556
  2269
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2270
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2271
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2272
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2273
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2274
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2275
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2276
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2277
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2278
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2279
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2280
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2281
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2282
             Isac.Diff, Isac.Test:407},
Walther@60556
  2283
           where_ = [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Var (("b", 0), "?'a1")) $ Free ("e_e", "bool")]}],
Walther@60556
  2284
         [Node
Walther@60556
  2285
           ("univariate",
Walther@60556
  2286
            [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh = "pbl_test_uni",
Walther@60556
  2287
              init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2288
              [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2289
               ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2290
              prls =
Walther@60556
  2291
              Repeat
Walther@60556
  2292
               {calc =
Walther@60556
  2293
                [("is_num", ("Prog_Expr.is_num", fn)), ("matches", ("Prog_Expr.matches", fn)), ("PLUS", ("Groups.plus_class.plus", fn)), ("TIMES", ("Groups.times_class.times", fn)),
Walther@60556
  2294
                 ("POWER", ("BaseDefinitions.realpow", fn)), ("le", ("Orderings.ord_class.less", fn)), ("leq", ("Orderings.ord_class.less_eq", fn)), ("ident", ("Prog_Expr.ident", fn))],
Walther@60556
  2295
                erls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, errpatts = [], id = "matches",
Walther@60556
  2296
                preconds = [], rew_ord = ("termlessI", fn), rules =
Walther@60556
  2297
                [Thm ("refl", "?t = ?t"), Thm ("order_refl", "?x \<le> ?x"), Thm ("radd_left_cancel_le", "(?k + ?m \<le> ?k + ?n) = (?m \<le> ?n)"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
  2298
                 Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"),
Walther@60556
  2299
                 Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("and_commute", "(?a \<and> ?b) = (?b \<and> ?a)"), Thm ("or_commute", "(?a \<or> ?b) = (?b \<or> ?a)"), Eval ("Prog_Expr.is_num", fn), Eval ("Prog_Expr.matches", fn),
Walther@60556
  2300
                 Eval ("Groups.plus_class.plus", fn), Eval ("Groups.times_class.times", fn), Eval ("BaseDefinitions.realpow", fn), Eval ("Orderings.ord_class.less", fn), Eval ("Orderings.ord_class.less_eq", fn),
Walther@60556
  2301
                 Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn)],
Walther@60556
  2302
                scr = Empty_Prog, srls = Empty},
Walther@60556
  2303
              thy =
Walther@60556
  2304
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2305
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2306
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2307
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2308
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2309
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2310
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2311
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2312
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2313
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2314
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2315
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2316
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2317
                Isac.Diff, Isac.Test:417},
Walther@60556
  2318
              where_ = [Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Var (("a", 0), "?'a1") $ Var (("b", 0), "?'a1")) $ Free ("e_e", "bool")]}],
Walther@60556
  2319
            [Node
Walther@60556
  2320
              ("LINEAR",
Walther@60556
  2321
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2322
                 "pbl_test_uni_lin", init = ["empty_probl_id"], mathauthors = [], met = [["Test", "solve_linear"]], ppc =
Walther@60556
  2323
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2324
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2325
                 prls =
Walther@60556
  2326
                 Repeat
Walther@60556
  2327
                  {calc =
Walther@60556
  2328
                   [("is_num", ("Prog_Expr.is_num", fn)), ("matches", ("Prog_Expr.matches", fn)), ("PLUS", ("Groups.plus_class.plus", fn)), ("TIMES", ("Groups.times_class.times", fn)),
Walther@60556
  2329
                    ("POWER", ("BaseDefinitions.realpow", fn)), ("le", ("Orderings.ord_class.less", fn)), ("leq", ("Orderings.ord_class.less_eq", fn)), ("ident", ("Prog_Expr.ident", fn))],
Walther@60556
  2330
                   erls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, errpatts = [], id = "matches",
Walther@60556
  2331
                   preconds = [], rew_ord = ("termlessI", fn), rules =
Walther@60556
  2332
                   [Thm ("refl", "?t = ?t"), Thm ("order_refl", "?x \<le> ?x"), Thm ("radd_left_cancel_le", "(?k + ?m \<le> ?k + ?n) = (?m \<le> ?n)"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
  2333
                    Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"),
Walther@60556
  2334
                    Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("and_commute", "(?a \<and> ?b) = (?b \<and> ?a)"), Thm ("or_commute", "(?a \<or> ?b) = (?b \<or> ?a)"), Eval ("Prog_Expr.is_num", fn),
Walther@60556
  2335
                    Eval ("Prog_Expr.matches", fn), Eval ("Groups.plus_class.plus", fn), Eval ("Groups.times_class.times", fn), Eval ("BaseDefinitions.realpow", fn), Eval ("Orderings.ord_class.less", fn),
Walther@60556
  2336
                    Eval ("Orderings.ord_class.less_eq", fn), Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn)],
Walther@60556
  2337
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  2338
                 thy =
Walther@60556
  2339
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2340
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2341
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2342
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2343
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2344
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2345
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2346
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2347
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2348
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2349
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2350
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2351
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2352
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:427},
Walther@60556
  2353
                 where_ =
Walther@60556
  2354
                 [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2355
                    (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $ (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ Free ("v_v", "?'a1") $ Const ("Groups.zero_class.zero", "?'a1")) $ Free ("e_e", "bool")) $
Walther@60556
  2356
                    (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2357
                      (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2358
                        (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Free ("v_v", "?'a1")) $
Walther@60556
  2359
                          Const ("Groups.zero_class.zero", "?'a1")) $
Walther@60556
  2360
                        Free ("e_e", "bool")) $
Walther@60556
  2361
                      (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2362
                        (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2363
                          (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $ (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $ Free ("v_v", "?'a1")) $
Walther@60556
  2364
                            Const ("Groups.zero_class.zero", "?'a1")) $
Walther@60556
  2365
                          Free ("e_e", "bool")) $
Walther@60556
  2366
                        (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2367
                          (Const ("HOL.eq", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> bool") $
Walther@60556
  2368
                            (Const ("Groups.plus_class.plus", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("a", 0), "?'a1") $
Walther@60556
  2369
                              (Const ("Groups.times_class.times", "?'a1 \<Rightarrow> ?'a1 \<Rightarrow> ?'a1") $ Var (("b", 0), "?'a1") $ Free ("v_v", "?'a1"))) $
Walther@60556
  2370
                            Const ("Groups.zero_class.zero", "?'a1")) $
Walther@60556
  2371
                          Free ("e_e", "bool"))))]}],
Walther@60556
  2372
               []),
Walther@60556
  2373
             Node
Walther@60556
  2374
              ("plain_square",
Walther@60556
  2375
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2376
                 "pbl_test_uni_plain2", init = ["empty_probl_id"], mathauthors = [], met = [["Test", "solve_plain_square"]], ppc =
Walther@60556
  2377
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2378
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2379
                 prls =
Walther@60556
  2380
                 Repeat
Walther@60556
  2381
                  {calc =
Walther@60556
  2382
                   [("is_num", ("Prog_Expr.is_num", fn)), ("matches", ("Prog_Expr.matches", fn)), ("PLUS", ("Groups.plus_class.plus", fn)), ("TIMES", ("Groups.times_class.times", fn)),
Walther@60556
  2383
                    ("POWER", ("BaseDefinitions.realpow", fn)), ("le", ("Orderings.ord_class.less", fn)), ("leq", ("Orderings.ord_class.less_eq", fn)), ("ident", ("Prog_Expr.ident", fn))],
Walther@60556
  2384
                   erls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, errpatts = [], id = "matches",
Walther@60556
  2385
                   preconds = [], rew_ord = ("termlessI", fn), rules =
Walther@60556
  2386
                   [Thm ("refl", "?t = ?t"), Thm ("order_refl", "?x \<le> ?x"), Thm ("radd_left_cancel_le", "(?k + ?m \<le> ?k + ?n) = (?m \<le> ?n)"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
  2387
                    Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"),
Walther@60556
  2388
                    Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("and_commute", "(?a \<and> ?b) = (?b \<and> ?a)"), Thm ("or_commute", "(?a \<or> ?b) = (?b \<or> ?a)"), Eval ("Prog_Expr.is_num", fn),
Walther@60556
  2389
                    Eval ("Prog_Expr.matches", fn), Eval ("Groups.plus_class.plus", fn), Eval ("Groups.times_class.times", fn), Eval ("BaseDefinitions.realpow", fn), Eval ("Orderings.ord_class.less", fn),
Walther@60556
  2390
                    Eval ("Orderings.ord_class.less_eq", fn), Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.matches", fn)],
Walther@60556
  2391
                   scr = Empty_Prog, srls = Empty},
Walther@60556
  2392
                 thy =
Walther@60556
  2393
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2394
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2395
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2396
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2397
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2398
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2399
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2400
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2401
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2402
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2403
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2404
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2405
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2406
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:475},
Walther@60556
  2407
                 where_ =
Walther@60556
  2408
                 [Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2409
                    (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2410
                      (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2411
                        (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  2412
                          (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  2413
                            (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2414
                              (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))))) $
Walther@60556
  2415
                        Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2416
                      Free ("e_e", "bool")) $
Walther@60556
  2417
                    (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2418
                      (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2419
                        (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2420
                          (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("b", 0), "real") $
Walther@60556
  2421
                            (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2422
                              (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  2423
                          Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2424
                        Free ("e_e", "bool")) $
Walther@60556
  2425
                      (Const ("HOL.disj", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2426
                        (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2427
                          (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2428
                            (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $ Var (("a", 0), "real") $
Walther@60556
  2429
                              (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2430
                                (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  2431
                            Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2432
                          Free ("e_e", "bool")) $
Walther@60556
  2433
                        (Const ("Prog_Expr.matches", "bool \<Rightarrow> bool \<Rightarrow> bool") $
Walther@60556
  2434
                          (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2435
                            (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2436
                              (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2437
                            Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2438
                          Free ("e_e", "bool"))))]}],
Walther@60556
  2439
               []),
Walther@60556
  2440
             Node
Walther@60556
  2441
              ("polynomial",
Walther@60556
  2442
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2443
                 "pbl_test_uni_poly", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2444
                 [("#Given",
Walther@60556
  2445
                   (Const ("Input_Descript.equality", "bool \<Rightarrow> una"),
Walther@60556
  2446
                    Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2447
                      (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2448
                        (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2449
                          (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2450
                            (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2451
                          (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("p_p", "real") $ Free ("v_v", "real"))) $
Walther@60556
  2452
                        Free ("q__q", "real")) $
Walther@60556
  2453
                      Const ("Groups.zero_class.zero", "real"))),
Walther@60556
  2454
                  ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))), ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2455
                 prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2456
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2457
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2458
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2459
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2460
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2461
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2462
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2463
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2464
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2465
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2466
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2467
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2468
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2469
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:485},
Walther@60556
  2470
                 where_ = [Const ("HOL.False", "bool")]}],
Walther@60556
  2471
               [Node
Walther@60556
  2472
                 ("degree_two",
Walther@60556
  2473
                  [{cas =
Walther@60556
  2474
                    SOME
Walther@60556
  2475
                     (
Walther@60556
  2476
                        Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $
Walther@60556
  2477
                          (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $
Walther@60556
  2478
                            (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2479
                              (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2480
                                (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2481
                                  (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2482
                                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2483
                                  (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("p_p", "real") $ Free ("v_v", "real"))) $
Walther@60556
  2484
                                Free ("q__q", "real")) $
Walther@60556
  2485
                              Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2486
                            Free ("v_v", "real"))
Walther@60556
  2487
                        ),
Walther@60556
  2488
                    guh = "pbl_test_uni_poly_deg2", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2489
                    [("#Given",
Walther@60556
  2490
                      (Const ("Input_Descript.equality", "bool \<Rightarrow> una"),
Walther@60556
  2491
                       Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2492
                         (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2493
                           (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2494
                             (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2495
                               (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2496
                             (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("p_p", "real") $ Free ("v_v", "real"))) $
Walther@60556
  2497
                           Free ("q__q", "real")) $
Walther@60556
  2498
                         Const ("Groups.zero_class.zero", "real"))),
Walther@60556
  2499
                     ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))), ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2500
                    prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2501
                    {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2502
                      HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2503
                      HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  2504
                      HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  2505
                      HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  2506
                      HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  2507
                      HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  2508
                      HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  2509
                      HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  2510
                      HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  2511
                      HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac,
Walther@60556
  2512
                      Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine,
Walther@60556
  2513
                      Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq,
Walther@60556
  2514
                      Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:495},
Walther@60556
  2515
                    where_ = []}],
Walther@60556
  2516
                  [Node
Walther@60556
  2517
                    ("pq_formula",
Walther@60556
  2518
                     [{cas =
Walther@60556
  2519
                       SOME
Walther@60556
  2520
                        (
Walther@60556
  2521
                           Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $
Walther@60556
  2522
                             (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $
Walther@60556
  2523
                               (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2524
                                 (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2525
                                   (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2526
                                     (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2527
                                       (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2528
                                     (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("p_p", "real") $ Free ("v_v", "real"))) $
Walther@60556
  2529
                                   Free ("q__q", "real")) $
Walther@60556
  2530
                                 Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2531
                               Free ("v_v", "real"))
Walther@60556
  2532
                           ),
Walther@60556
  2533
                       guh = "pbl_test_uni_poly_deg2_pq", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2534
                       [("#Given",
Walther@60556
  2535
                         (Const ("Input_Descript.equality", "bool \<Rightarrow> una"),
Walther@60556
  2536
                          Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2537
                            (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2538
                              (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2539
                                (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("v_v", "real") $
Walther@60556
  2540
                                  (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num")))) $
Walther@60556
  2541
                                (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("p_p", "real") $ Free ("v_v", "real"))) $
Walther@60556
  2542
                              Free ("q__q", "real")) $
Walther@60556
  2543
                            Const ("Groups.zero_class.zero", "real"))),
Walther@60556
  2544
                        ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2545
                        ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2546
                       prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2547
                       {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2548
                         HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2549
                         HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  2550
                         HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  2551
                         HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  2552
                         HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  2553
                         HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  2554
                         HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  2555
                         HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  2556
                         HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  2557
                         HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program,
Walther@60556
  2558
                         Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret,
Walther@60556
  2559
                         Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq,
Walther@60556
  2560
                         Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:505},
Walther@60556
  2561
                       where_ = []}],
Walther@60556
  2562
                     []),
Walther@60556
  2563
                   Node
Walther@60556
  2564
                    ("abc_formula",
Walther@60556
  2565
                     [{cas =
Walther@60556
  2566
                       SOME
Walther@60556
  2567
                        (
Walther@60556
  2568
                           Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $
Walther@60556
  2569
                             (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $
Walther@60556
  2570
                               (Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2571
                                 (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2572
                                   (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2573
                                     (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("a_a", "real") $
Walther@60556
  2574
                                       (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("x", "real") $
Walther@60556
  2575
                                         (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  2576
                                     (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("b_b", "real") $ Free ("x", "real"))) $
Walther@60556
  2577
                                   Free ("c_c", "real")) $
Walther@60556
  2578
                                 Const ("Groups.zero_class.zero", "real")) $
Walther@60556
  2579
                               Free ("v_v", "real"))
Walther@60556
  2580
                           ),
Walther@60556
  2581
                       guh = "pbl_test_uni_poly_deg2_abc", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2582
                       [("#Given",
Walther@60556
  2583
                         (Const ("Input_Descript.equality", "bool \<Rightarrow> una"),
Walther@60556
  2584
                          Const ("HOL.eq", "real \<Rightarrow> real \<Rightarrow> bool") $
Walther@60556
  2585
                            (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2586
                              (Const ("Groups.plus_class.plus", "real \<Rightarrow> real \<Rightarrow> real") $
Walther@60556
  2587
                                (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("a_a", "real") $
Walther@60556
  2588
                                  (Const ("BaseDefinitions.realpow", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("x", "real") $
Walther@60556
  2589
                                    (Const ("Num.numeral_class.numeral", "num \<Rightarrow> real") $ (Const ("Num.num.Bit0", "num \<Rightarrow> num") $ Const ("Num.num.One", "num"))))) $
Walther@60556
  2590
                                (Const ("Groups.times_class.times", "real \<Rightarrow> real \<Rightarrow> real") $ Free ("b_b", "real") $ Free ("x", "real"))) $
Walther@60556
  2591
                              Free ("c_c", "real")) $
Walther@60556
  2592
                            Const ("Groups.zero_class.zero", "real"))),
Walther@60556
  2593
                        ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2594
                        ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2595
                       prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2596
                       {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2597
                         HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2598
                         HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base,
Walther@60556
  2599
                         HOL.BNF_Def, HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power,
Walther@60556
  2600
                         HOL.Groups_Big, HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big,
Walther@60556
  2601
                         HOL.Euclidean_Division, HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer,
Walther@60556
  2602
                         HOL.Lifting_Set, HOL.List, HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence,
Walther@60556
  2603
                         HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick,
Walther@60556
  2604
                         HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main,
Walther@60556
  2605
                         HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series,
Walther@60556
  2606
                         HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program,
Walther@60556
  2607
                         Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret,
Walther@60556
  2608
                         Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq,
Walther@60556
  2609
                         Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:515},
Walther@60556
  2610
                       where_ = []}],
Walther@60556
  2611
                     [])])]),
Walther@60556
  2612
             Node
Walther@60556
  2613
              ("squareroot",
Walther@60556
  2614
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2615
                 "pbl_test_uni_root", init = ["empty_probl_id"], mathauthors = [], met = [["Test", "square_equation"]], ppc =
Walther@60556
  2616
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2617
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2618
                 prls =
Walther@60556
  2619
                 Repeat {calc = [], erls = Empty, errpatts = [], id = "contains_root", preconds = [], rew_ord = ("dummy_ord", fn), rules = [Eval ("Test.contains_root", fn)], scr = Empty_Prog, srls = Empty},
Walther@60556
  2620
                 thy =
Walther@60556
  2621
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2622
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2623
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2624
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2625
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2626
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2627
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2628
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2629
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2630
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2631
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2632
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2633
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2634
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:525},
Walther@60556
  2635
                 where_ = [Const ("Test.precond_rootpbl", "?'a \<Rightarrow> bool") $ Free ("v_v", "?'a")]}],
Walther@60556
  2636
               []),
Walther@60556
  2637
             Node
Walther@60556
  2638
              ("normalise",
Walther@60556
  2639
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2640
                 "pbl_test_uni_norm", init = ["empty_probl_id"], mathauthors = [], met = [["Test", "norm_univar_equation"]], ppc =
Walther@60556
  2641
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2642
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2643
                 prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2644
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2645
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2646
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2647
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2648
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2649
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2650
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2651
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2652
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2653
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2654
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2655
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2656
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2657
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:535},
Walther@60556
  2658
                 where_ = []}],
Walther@60556
  2659
               []),
Walther@60556
  2660
             Node
Walther@60556
  2661
              ("sqroot-test",
Walther@60556
  2662
               [{cas = SOME (Const ("Equation.solve", "bool \<times> real \<Rightarrow> bool list") $ (Const ("Product_Type.Pair", "bool \<Rightarrow> real \<Rightarrow> bool \<times> real") $ Free ("e_e", "bool") $ Free ("v_v", "real"))), guh =
Walther@60556
  2663
                 "pbl_test_uni_roottest", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2664
                 [("#Given", (Const ("Input_Descript.equality", "bool \<Rightarrow> una"), Free ("e_e", "bool"))), ("#Given", (Const ("Input_Descript.solveFor", "real \<Rightarrow> una"), Free ("v_v", "real"))),
Walther@60556
  2665
                  ("#Find", (Const ("Input_Descript.solutions", "bool list \<Rightarrow> toreall"), Free ("v_v'i'", "bool list")))],
Walther@60556
  2666
                 prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2667
                 {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive,
Walther@60556
  2668
                   HOL.Rings, HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2669
                   HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2670
                   HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2671
                   HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2672
                   HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2673
                   HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2674
                   HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2675
                   HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull,
Walther@60556
  2676
                   HOL.Modules, HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex,
Walther@60556
  2677
                   HOL.MacLaurin, Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr,
Walther@60556
  2678
                   Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle,
Walther@60556
  2679
                   Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq,
Walther@60556
  2680
                   Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Test:545},
Walther@60556
  2681
                 where_ = [Const ("Test.precond_rootpbl", "?'a \<Rightarrow> bool") $ Free ("v_v", "?'a")]}],
Walther@60556
  2682
               [])])]),
Walther@60556
  2683
       Node
Walther@60556
  2684
        ("inttype",
Walther@60556
  2685
         [{cas = NONE, guh = "pbl_test_intsimp", init = ["empty_probl_id"], mathauthors = [], met = [["Test", "intsimp"]], ppc =
Walther@60556
  2686
           [("#Given", (Const ("Input_Descript.intTestGiven", "int \<Rightarrow> una"), Free ("t_t", "int"))), ("#Find", (Free ("intTestFind", "'a \<Rightarrow> 'b"), Free ("s_s", "'a")))], prls =
Walther@60556
  2687
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2688
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2689
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2690
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2691
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2692
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2693
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2694
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2695
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2696
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2697
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2698
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2699
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2700
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2701
             Isac.Diff, Isac.Test:555},
Walther@60556
  2702
           where_ = []}],
Walther@60556
  2703
         [])]),
Walther@60556
  2704
    Node
Walther@60556
  2705
     ("tool",
Walther@60556
  2706
      [{cas = NONE, guh = "pbl_tool", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2707
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2708
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2709
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2710
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2711
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2712
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2713
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2714
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2715
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2716
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2717
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2718
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2719
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  2720
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Diff_App:305},
Walther@60556
  2721
        where_ = []}],
Walther@60556
  2722
      [Node
Walther@60556
  2723
        ("find_values",
Walther@60556
  2724
         [{cas = NONE, guh = "pbl_tool_findvals", init = ["empty_probl_id"], mathauthors = [], met = [], ppc =
Walther@60556
  2725
           [("#Given", (Const ("Input_Descript.maxArgument", "bool \<Rightarrow> toreal"), Free ("m_ax", "bool"))), ("#Given", (Const ("Input_Descript.functionEq", "bool \<Rightarrow> una"), Free ("f_f", "bool"))),
Walther@60556
  2726
            ("#Given", (Const ("Input_Descript.boundVariable", "real \<Rightarrow> una"), Free ("v_v", "real"))), ("#Find", (Const ("Input_Descript.valuesFor", "real list \<Rightarrow> toreall"), Free ("v_ls", "real list"))),
Walther@60556
  2727
            ("#Relate", (Const ("Input_Descript.additionalRels", "bool list \<Rightarrow> una"), Free ("r_s", "bool list")))],
Walther@60556
  2728
           prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2729
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2730
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2731
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2732
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2733
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2734
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2735
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2736
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2737
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2738
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2739
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2740
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2741
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2742
             Isac.Diff, Isac.Diff_App:315},
Walther@60556
  2743
           where_ = []}],
Walther@60556
  2744
         [])]),
Walther@60556
  2745
    Node
Walther@60556
  2746
     ("Optimisation",
Walther@60556
  2747
      [{cas = NONE, guh = "pbl_opti", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2748
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2749
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2750
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2751
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2752
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2753
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2754
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2755
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2756
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2757
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2758
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2759
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2760
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  2761
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Diff_App:325},
Walther@60556
  2762
        where_ = []}],
Walther@60556
  2763
      [Node
Walther@60556
  2764
        ("univariate_calculus",
Walther@60556
  2765
         [{cas = NONE, guh = "pbl_opti_univ", init = ["empty_probl_id"], mathauthors = [], met = [["Optimisation", "by_univariate_calculus"]], ppc =
Walther@60556
  2766
           [("#Given", (Const ("Input_Descript.Constants", "bool list \<Rightarrow> nam"), Free ("fixes", "bool list"))), ("#Find", (Const ("Input_Descript.Maximum", "real \<Rightarrow> toreal"), Free ("maxx", "real"))),
Walther@60556
  2767
            ("#Find", (Const ("Input_Descript.AdditionalValues", "real list \<Rightarrow> toreall"), Free ("vals", "real list"))), ("#Relate", (Const ("Input_Descript.Extremum", "bool \<Rightarrow> toreal"), Free ("extr", "bool"))),
Walther@60556
  2768
            ("#Relate", (Const ("Input_Descript.SideConditions", "bool list \<Rightarrow> una"), Free ("sideconds", "bool list")))],
Walther@60556
  2769
           prls =
Walther@60556
  2770
           Repeat
Walther@60556
  2771
            {calc =
Walther@60556
  2772
             [("le", ("Orderings.ord_class.less", fn)), ("leq", ("Orderings.ord_class.less_eq", fn)), ("ident", ("Prog_Expr.ident", fn)), ("is_num", ("Prog_Expr.is_num", fn)),
Walther@60556
  2773
              ("occurs_in", ("Prog_Expr.occurs_in", fn)), ("matches", ("Prog_Expr.matches", fn))],
Walther@60556
  2774
             erls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, errpatts = [], id = "eval_rls",
Walther@60556
  2775
             preconds = [], rew_ord = ("termlessI", fn), rules =
Walther@60556
  2776
             [Thm ("refl", "?t = ?t"), Thm ("order_refl", "?x \<le> ?x"), Thm ("radd_left_cancel_le", "(?k + ?m \<le> ?k + ?n) = (?m \<le> ?n)"), Thm ("not_true", "(\<not> True) = False"),
Walther@60556
  2777
              Thm ("not_false", "(\<not> False) = True"), Thm ("and_true", "(?a \<and> True) = ?a"), Thm ("and_false", "(?a \<and> False) = False"), Thm ("or_true", "(?a \<or> True) = True"),
Walther@60556
  2778
              Thm ("or_false", "(?a \<or> False) = ?a"), Thm ("and_commute", "(?a \<and> ?b) = (?b \<and> ?a)"), Thm ("or_commute", "(?a \<or> ?b) = (?b \<or> ?a)"), Eval ("Orderings.ord_class.less", fn),
Walther@60556
  2779
              Eval ("Orderings.ord_class.less_eq", fn), Eval ("Prog_Expr.ident", fn), Eval ("Prog_Expr.is_num", fn), Eval ("Prog_Expr.occurs_in", fn), Eval ("Prog_Expr.matches", fn)],
Walther@60556
  2780
             scr = Empty_Prog, srls = Empty},
Walther@60556
  2781
           thy =
Walther@60556
  2782
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2783
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2784
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2785
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2786
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2787
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2788
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2789
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2790
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2791
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2792
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2793
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2794
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2795
             Isac.Diff, Isac.Diff_App:335},
Walther@60556
  2796
           where_ = []}],
Walther@60556
  2797
         [])]),
Walther@60556
  2798
    Node
Walther@60556
  2799
     ("SignalProcessing",
Walther@60556
  2800
      [{cas = NONE, guh = "pbl_SP", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2801
        Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2802
        {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2803
          HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2804
          HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2805
          HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2806
          HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2807
          HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List, HOL.Groups_List,
Walther@60556
  2808
          HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation, HOL.Quickcheck_Random,
Walther@60556
  2809
          HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing, HOL.Mirabelle, HOL.Extraction,
Walther@60556
  2810
          HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules, HOL.Real, HOL.Topological_Spaces,
Walther@60556
  2811
          HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin, Complex_Main, Specify.Know_Store,
Walther@60556
  2812
          Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog, Specify.ProgLang, Specify.Input_Descript,
Walther@60556
  2813
          Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify, Isac.Poly, Isac.Root, Isac.Equation,
Walther@60556
  2814
          Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp, Isac.Diff, Isac.Diff_App, Isac.Partial_Fractions,
Walther@60556
  2815
          Isac.Inverse_Z_Transform:96},
Walther@60556
  2816
        where_ = []}],
Walther@60556
  2817
      [Node
Walther@60556
  2818
        ("Z_Transform",
Walther@60556
  2819
         [{cas = NONE, guh = "pbl_SP_Ztrans", init = ["empty_probl_id"], mathauthors = [], met = [], ppc = [], prls =
Walther@60556
  2820
           Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2821
           {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2822
             HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2823
             HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2824
             HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2825
             HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2826
             HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2827
             HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2828
             HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2829
             HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2830
             HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2831
             Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2832
             Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2833
             Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2834
             Isac.Diff, Isac.Diff_App, Isac.Partial_Fractions, Isac.Inverse_Z_Transform:106},
Walther@60556
  2835
           where_ = []}],
Walther@60556
  2836
         [Node
Walther@60556
  2837
           ("Inverse",
Walther@60556
  2838
            [{cas = NONE, guh = "pbl_SP_Ztrans_inv", init = ["empty_probl_id"], mathauthors = [], met = [["SignalProcessing", "Z_Transform", "Inverse"]], ppc =
Walther@60556
  2839
              [("#Given", (Const ("Inverse_Z_Transform.filterExpression", "bool \<Rightarrow> una"), Free ("X_eq", "bool"))), ("#Find", (Const ("Inverse_Z_Transform.stepResponse", "bool \<Rightarrow> una"), Free ("n_eq", "bool")))],
Walther@60556
  2840
              prls = Repeat {calc = [], erls = Empty, errpatts = [], id = "empty", preconds = [], rew_ord = ("dummy_ord", fn), rules = [], scr = Empty_Prog, srls = Empty}, thy =
Walther@60556
  2841
              {Pure, Tools.Code_Generator, HOL.HOL, HOL.Orderings, HOL.Groups, HOL.Lattices, HOL.Boolean_Algebras, HOL.Set, HOL.Fun, HOL.Complete_Lattices, HOL.Ctr_Sugar, HOL.Typedef, HOL.Inductive, HOL.Rings,
Walther@60556
  2842
                HOL.Nat, HOL.Product_Type, HOL.Sum_Type, HOL.Fields, HOL.Finite_Set, HOL.Relation, HOL.Transitive_Closure, HOL.Wellfounded, HOL.Wfrec, HOL.Order_Relation, HOL.Hilbert_Choice,
Walther@60556
  2843
                HOL.BNF_Wellorder_Relation, HOL.BNF_Wellorder_Embedding, HOL.Zorn, HOL.BNF_Wellorder_Constructions, HOL.BNF_Cardinal_Order_Relation, HOL.BNF_Cardinal_Arithmetic, HOL.Fun_Def_Base, HOL.BNF_Def,
Walther@60556
  2844
                HOL.BNF_Composition, HOL.Basic_BNFs, HOL.BNF_Fixpoint_Base, HOL.BNF_Least_Fixpoint, HOL.Meson, HOL.ATP, HOL.Basic_BNF_LFPs, HOL.Metis, HOL.Transfer, HOL.Num, HOL.Power, HOL.Groups_Big,
Walther@60556
  2845
                HOL.Equiv_Relations, HOL.Lifting, HOL.Complete_Partial_Order, HOL.Option, HOL.Argo, HOL.Partial_Function, HOL.SAT, HOL.Quotient, HOL.Fun_Def, HOL.Int, HOL.Lattices_Big, HOL.Euclidean_Division,
Walther@60556
  2846
                HOL.Parity, HOL.Divides, HOL.Numeral_Simprocs, HOL.Semiring_Normalization, HOL.Groebner_Basis, HOL.Set_Interval, HOL.Presburger, HOL.SMT, HOL.Sledgehammer, HOL.Lifting_Set, HOL.List,
Walther@60556
  2847
                HOL.Groups_List, HOL.Bit_Operations, HOL.Code_Numeral, HOL.Map, HOL.Enum, HOL.String, HOL.Predicate, HOL.Lazy_Sequence, HOL.Typerep, HOL.Limited_Sequence, HOL.Random, HOL.Code_Evaluation,
Walther@60556
  2848
                HOL.Quickcheck_Random, HOL.Random_Pred, HOL.Random_Sequence, HOL.Quickcheck_Exhaustive, HOL.Predicate_Compile, HOL.Record, HOL.GCD, HOL.Nitpick, HOL.Factorial, HOL.Quickcheck_Narrowing,
Walther@60556
  2849
                HOL.Mirabelle, HOL.Extraction, HOL.Nunchaku, HOL.BNF_Greatest_Fixpoint, HOL.Filter, HOL.Conditionally_Complete_Lattices, HOL.Binomial, Main, HOL.Archimedean_Field, HOL.Rat, HOL.Hull, HOL.Modules,
Walther@60556
  2850
                HOL.Real, HOL.Topological_Spaces, HOL.Vector_Spaces, HOL.Real_Vector_Spaces, HOL.Limits, HOL.Inequalities, HOL.Deriv, HOL.Series, HOL.NthRoot, HOL.Transcendental, HOL.Complex, HOL.MacLaurin,
Walther@60556
  2851
                Complex_Main, Specify.Know_Store, Specify.BaseDefinitions, Specify.Calc_Binop, Specify.ListC, Specify.Program, Specify.Prog_Tac, Specify.Tactical, Specify.Prog_Expr, Specify.Auto_Prog,
Walther@60556
  2852
                Specify.ProgLang, Specify.Input_Descript, Specify.MathEngBasic, Specify.Specify, Interpret.Interpret, Isac.MathEngine, Isac.Test_Code, Isac.BridgeLibisabelle, Isac.Base_Tools, Isac.Simplify,
Walther@60556
  2853
                Isac.Poly, Isac.Root, Isac.Equation, Isac.GCD_Poly_ML, Isac.Rational, Isac.LinEq, Isac.RootEq, Isac.RatEq, Isac.RootRat, Isac.RootRatEq, Isac.PolyEq, Isac.Calculus, Isac.Trig, Isac.LogExp,
Walther@60556
  2854
                Isac.Diff, Isac.Diff_App, Isac.Partial_Fractions, Isac.Inverse_Z_Transform:116},
Walther@60556
  2855
              where_ = []}],
Walther@60556
  2856
            [])])])]:
Walther@60556
  2857
   Probl_Def.store*)
Walther@60556
  2858
\<close> text \<open>
Walther@60556
  2859
("thy1", ["aaa", "bbb"], ["ccc", "ddd"]) |> References.select_input References.empty |> #1 |> ThyC.get_theory |> Proof_Context.init_global
Walther@60556
  2860
\<close> text \<open>
Walther@60556
  2861
Proof_Context.init_global (References.select_input speco spec |> #1 |> ThyC.get_theory)
Walther@60556
  2862
\<close> ML \<open>
Walther@60556
  2863
\<close> ML \<open>
Walther@60556
  2864
\<close> ML \<open>
Walther@60556
  2865
\<close> ML \<open>
Walther@60556
  2866
\<close> ML \<open>
Walther@60556
  2867
\<close> ML \<open>
Walther@60556
  2868
\<close> ML \<open>
wneuper@59472
  2869
\<close>
Walther@60556
  2870
(*\----- end delete -----------------------------------------------------------------------/*)
walther@59902
  2871
ML \<open>Eval.adhoc_thm; (*from "ProgLang/evaluate.sml" *)\<close>
wneuper@59472
  2872
ML \<open>Rewrite.rewrite_; (*from "ProgLang/rewrite.sml" *)\<close>
walther@59953
  2873
ML \<open>Input_Descript.for_real_list; (*from "Input_Descript.thy" *)\<close>
walther@59814
  2874
ML \<open>Test_Code.me;\<close>
walther@59613
  2875
text \<open>contextthyOK2xml; (*"xmlsrc/interface-xml.sml"*)\<close>
walther@59801
  2876
ML \<open>prog_expr\<close>
wneuper@59562
  2877
                                                         
walther@59603
  2878
ML \<open>Prog_Expr.eval_occurs_in\<close>
walther@59603
  2879
ML \<open>@{thm last_thmI}\<close>
walther@60077
  2880
(** )ML \<open>@{thm Querkraft_Belastung}\<close>( *exception FAIL NONE raised (line 161 of "General/scan.ML")*)
neuper@41905
  2881
Walther@60502
  2882
declare [[check_unique = false]]
wneuper@59472
  2883
ML \<open>writeln "**** isac kernel = math-engine + Knowledge complete ******"\<close>
wneuper@59592
  2884
ML \<open>@{theory "Isac_Knowledge"}\<close>
wneuper@59472
  2885
ML \<open>(*get_the ["IsacKnowledge", "Diff", "Theorems", "diff_sin_chain"]
walther@59997
  2886
  ERROR: app_py: not found: ["IsacKnowledge", "Diff", "Theorems", "diff_sin_chain"]*)\<close>
neuper@42412
  2887
wneuper@59472
  2888
section \<open>State of approaching Isabelle by Isac\<close>
wneuper@59472
  2889
text \<open>
Walther@60551
  2890
  Mathias Lehnfeld gives the following list in his thesis in section 
neuper@55431
  2891
  4.2.3 Relation to Ongoing Isabelle Development.
wneuper@59472
  2892
\<close>
wneuper@59472
  2893
subsection \<open>(0) Survey on remaining Unsynchronized.ref\<close>
wneuper@59472
  2894
text \<open>
Walther@60507
  2895
  DONE
wneuper@59472
  2896
\<close>
wneuper@59472
  2897
subsection \<open>(1) Exploit parallelism for concurrent session management\<close>
wneuper@59472
  2898
subsection \<open>(2) Make Isac’s programming language usable\<close>
wneuper@59472
  2899
subsection \<open>(3) Adopt Isabelle’s numeral computation for Isac\<close>
wneuper@59472
  2900
text \<open>
neuper@55431
  2901
  In 2002 isac already strived for floating point numbers. Since that time
neuper@55431
  2902
  isac represents numerals as "Free", see below (*1*). These experiments are
neuper@55431
  2903
  unsatisfactory with respect to logical soundness.
neuper@55431
  2904
  Since Isabelle now has started to care about floating point numbers, it is high 
neuper@55431
  2905
  time to adopt these together with the other numerals. Isabelle2012/13's numerals
wenzelm@60217
  2906
  are different from Isabelle2011, see "$ISABELLE_ISAC_TEST/Tools/isac/ProgLang/termC.sml".
neuper@55431
  2907
  
neuper@55431
  2908
  The transition from "Free" to standard numerals is a task to be scheduled for 
neuper@55431
  2909
  several weeks. The urgency of this task follows from the experience, 
neuper@55431
  2910
  that (1.2) for "thehier" is very hard, because "num_str" seems to destroy 
neuper@55431
  2911
  some of the long identifiers of theorems which would tremendously simplify
neuper@55431
  2912
  building a hierarchy of theorems according to (1.2), see (*2*) below.
wneuper@59472
  2913
\<close>
wneuper@59472
  2914
ML \<open>(*1*) Free ("123.456", HOLogic.realT)\<close>
neuper@55484
  2915
wneuper@59472
  2916
subsection \<open>(4) Improve the efficiency of Isac’s rewrite-engine\<close>
wneuper@59472
  2917
subsection \<open>(5) Adopt Isabelle/jEdit for Isac\<close>
neuper@55431
  2918
neuper@37906
  2919
end