todo revision 7ed2a775680fb1a29e6907d372124906b7746420
fa9e4066f08beec538e775443c5be79dd423fcabahrensPlan and priority list for CoFI tool activities
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg************************************************
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jgSonja (Till)
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensDiplom: Encoding for HasCASL in Isabelle/HOL(CF)
fa9e4066f08beec538e775443c5be79dd423fcabahrensInterface Hets <-> ISabelle
fa9e4066f08beec538e775443c5be79dd423fcabahrens Hets muss eine Pipe als Inode erzeugen
fa9e4066f08beec538e775443c5be79dd423fcabahrens und dann auf Beweisterme warten
fa9e4066f08beec538e775443c5be79dd423fcabahrens und auf "Ende" warten
fa9e4066f08beec538e775443c5be79dd423fcabahrens und dann Proof_status sen proof_tree entsprechend ausf�llen
fa9e4066f08beec538e775443c5be79dd423fcabahrensIsabelle (im .thy file, dass von IsaProve.hs erzeugt wird)
fa9e4066f08beec538e775443c5be79dd423fcabahrens Beweisterme (siehe Kapitel im RefMan)
97322426b5359bb3ffd4527e1ad8b2c5f7dab832Darren J Moffat ML "proofs := 1" (am Anfang des .thy file)
fa9e4066f08beec538e775443c5be79dd423fcabahrens am Ende jedes Theorems: Beweisterm in die Pipe schreiben
fa9e4066f08beec538e775443c5be79dd423fcabahrens (Pipenamen direkt angeben, vom thy-file-Namen abgeleitet)
fa9e4066f08beec538e775443c5be79dd423fcabahrens mit pretty_proof_of und Pretty.string_of
fa9e4066f08beec538e775443c5be79dd423fcabahrens und Start- und Endmarker
45818ee124adeaaf947698996b4f4c722afc6d1fMatthew Ahrens am Schluss "Ende" ausgeben
fa9e4066f08beec538e775443c5be79dd423fcabahrensFunktion basicInferenceNode in Proofs/Proofs.hs:
fa9e4066f08beec538e775443c5be79dd423fcabahrens Theorem link nur dann gr�n, wenn alle Goals bewiesen wurden
fa9e4066f08beec538e775443c5be79dd423fcabahrensEmacs: uni/emacs, George fragen (ger@)
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensJorina (Till)
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensdevelopment graph calculus
fa9e4066f08beec538e775443c5be79dd423fcabahrens- Stack overflow for "show just subtree"
fa9e4066f08beec538e775443c5be79dd423fcabahrens- view-test7.casl should be provable with globDecomp + locDecopm
fa9e4066f08beec538e775443c5be79dd423fcabahrens- fail when doing first globDecomp, then local decomp in RelationsAndOrders
fa9e4066f08beec538e775443c5be79dd423fcabahrens- correct MAYA: glob decomp: some links are not found (Jorina)
fa9e4066f08beec538e775443c5be79dd423fcabahrens- Fail: No match in record selector Static.DevGraph.dgn_sign
fa9e4066f08beec538e775443c5be79dd423fcabahrens for local subsume in RelationsAndOrders
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensMartin (Till)
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrenstype check for CASL
fa9e4066f08beec538e775443c5be79dd423fcabahrensdocumentation
fa9e4066f08beec538e775443c5be79dd423fcabahrens*** Error encode.casl:8.30, No correct typing for
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensMingyi (Till)
fa9e4066f08beec538e775443c5be79dd423fcabahrens************************************************
fa9e4066f08beec538e775443c5be79dd423fcabahrensport CCC to Haskell
45818ee124adeaaf947698996b4f4c722afc6d1fMatthew AhrensFunktionen imageOfMorphism und inhabited
45818ee124adeaaf947698996b4f4c722afc6d1fMatthew Ahrens von OnePoint.hs in eigenes Modul verschieben: Modul SignFuns.hs
fa9e4066f08beec538e775443c5be79dd423fcabahrens mit "cvs add SigFuns.hs" einchecken
fa9e4066f08beec538e775443c5be79dd423fcabahrens"free datatypes and recursive equations are consistent"
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheckFreeType :: Morphism f e m -> [FORMULA f] -> Maybe Bool
fa9e4066f08beec538e775443c5be79dd423fcabahrensJust True => Yes, is consistent
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jgJust False => No, is inconsistent
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jgNothing => don't know
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jgcall the symbols in the image of the signature morphism "new"
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg- each new sort must be a free type,
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg i.e. it must occur in a sort generation constraint that is marked as free
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg (Sort_gen_ax constrs True)
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg such that the sort is in srts, where (srts,ops,_)=recover_Sort_gen_ax constrs
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg if not, output "don't know"
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg and there must be one term of that sort (inhabited)
bb25c06cca41ca78e5fb87fbb8e81d55beb18c95jg if not, output "no"
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe- group the axioms according to their leading operation/predicate symbol,
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe i.e. the f resp. the p in
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe forall x_1:s_n .... x_n:s_n . f(t_1,...,t_m)=t
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe forall x_1:s_n .... x_n:s_n . phi => f(t_1,...,t_m)=t
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe Implication Application Strong_equation
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe forall x_1:s_n .... x_n:s_n . p(t_1,...,t_m)<=>phi
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe forall x_1:s_n .... x_n:s_n . phi1 => p(t_1,...,t_m)<=>phi
fa9e4066f08beec538e775443c5be79dd423fcabahrens Implication Predication Equivalence
fa9e4066f08beec538e775443c5be79dd423fcabahrens if there are axioms not being of this form, output "don't know"
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheck' :: [EquationInfo] -> ([ExhaustivePat],EqnSet)
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheck' [] = ([([],[])],emptyUniqSet)
fa9e4066f08beec538e775443c5be79dd423fcabahrens-- nur ein Pattern, bestehend aus nur Variablen? fertig, True
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheck' [EqnInfo n ctx ps (MatchResult CanFail _)]
fa9e4066f08beec538e775443c5be79dd423fcabahrens | all_vars ps = ([(takeList ps (repeat new_wild_pat),[])], unitUniqSet n)
fa9e4066f08beec538e775443c5be79dd423fcabahrens-- besteht das erste Pattern nur aus Variablen? dann darf es kein zweites geben!
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheck' qs@((EqnInfo n ctx ps (MatchResult CanFail _)):rs)
fa9e4066f08beec538e775443c5be79dd423fcabahrens | all_vars ps = (pats, addOneToUniqSet indexs n)
fa9e4066f08beec538e775443c5be79dd423fcabahrens (pats,indexs) = check' rs
fa9e4066f08beec538e775443c5be79dd423fcabahrens-- falls ein Konstruktor dabei ist: split_by_constructor
fa9e4066f08beec538e775443c5be79dd423fcabahrens-- wenn die ersten Argument nur Variablen sind: first_column_only_vars
fa9e4066f08beec538e775443c5be79dd423fcabahrenscheck' qs@((EqnInfo n ctx ps result):_)
fa9e4066f08beec538e775443c5be79dd423fcabahrens | all_vars ps = ([], unitUniqSet n)
fa9e4066f08beec538e775443c5be79dd423fcabahrens | constructors = split_by_constructor qs
fa9e4066f08beec538e775443c5be79dd423fcabahrens | only_vars = first_column_only_vars qs
fa9e4066f08beec538e775443c5be79dd423fcabahrens | otherwise = panic "Check.check': Not implemented :-("
fa9e4066f08beec538e775443c5be79dd423fcabahrens -- Note: RecPats will have been simplified to ConPats
- group the axioms according to their leading operation/predicate symbol,
i.e. the f resp. the p in
symbol map analysis (hiding sub/supertypes)
Simpsets/Taktiken fuer Minimierung der ueberladenen Typen entwickeln
ensure that axiom/thm names are unique
+ translations (e.g. modal to FOL)
Isabelle codings: www.inf.ethz.ch/~vigano
Integration of MAYA and Isabelle/HOL (global HOL-Coding of
(i.e. signatures, axioms, signature morphisms in HOL,
Hets interactive (provide cmd line interface, but hold loaded libraries in memory, provide switch to context of spec, and type checking of expressions, interaction with emacs mode)
Data.Serizable (only when ghc supports it)
Improve encoding: CATS/basic_encode.sml (3 days)
More HOL-theories: CATS/HOL-CASL/struct_encode.sml (2 days)
Term input+errors in cmd line interface: CATS/casl/casl.sml (1 day)
Adapt more stuff from isabelle/src/HOL/Tools/datatype_package.ML (2 weeks)
HOL-CASL Simplifier: CATS/HOL-CASL/simplifier.sml (1 week)
HOL-CASL tactics: CATS/HOL-CALS/tactic.sml (2 days)
HOL-CASL encoding: CATS/HOL-CASL/basic_encode.sml (1 day)
IsaWin git/src/isa_ext/casl_thy.sml (1 week)
Basic datatypes CASL-lib/Basic/basic.casl
Conversion ASF/SDF-Parser -> abstract syntax (in Haskell)
Views on CASL specs: CATS/viewer.sml (2 weeks)
Module graph CATS/module_graph.sml (1 week) -> Maya?
ATerms via XML: CATS/aterms.sml (2 weeks)
Library management: CATS/lib_ana.sml (2 weeks)