todo revision 578415c3958202aefc3e396ac5788c594c3b1bf7
Plan and priority list for CoFI tool activities
************************************************
Immanuel
************************************************
user normann
************************************************
Razvan (Till)
************************************************
user rpascanu
************************************************
Anton (Till)
************************************************
user luecke
**************** task A ************************
user maeder
************************************************
Florian (Till)
************************************************
Modelchecker f�r algebraische Eigenschaften
neue Hets-Option in Driver/WriteFn.hs implementieren
hets -n NonAssocRelationAlgebra
--modelSparQ=datei.lisp Calculi/Algebra/RelationAlgebra.casl
(oder -m datei.lisp)
siehe auch CASL.CompositionTable.ComputeTable
modelCheck :: SIMPLE_ID -> (Sign f e, [Named (FORMULA f)])
-> Result Bool
Warnung mit Gegenbspen ausgeben, wenn eine Eigenschaft nicht gilt
(abbrechen nach 10 Gegenbspen)
Warnungen erzeugen mit Funktion warning aus Common.Result
Range aus den CASL-FORMULAs extrahieren
Result ist eine Monade, ggf. mit do-Notation arbeiten
Pr�fung der G�ltigkeit von CASL-Formel in einer Table, rekursiv:
Allquantoren --> all, Existenzquantor --> any
CASL-Junktoren --> Haskell-Junktoren
Terme rekursiv auswerten, Operationen aus der Table nehmen
(siehe CASL.AS_CASL_Basic)
Aufgabe von Shi Hui: XML-Anfragen mit DCC-Ausdr�cken an Bremer Solver schicken
- ggf. Server nutzen
- Vorverarbeitung f�r Solver (z.B. Duplikate raus)
- Shi soll auf Freiburger XML-Format umsteigen (ggf. mit XSLT)
Applikation1 ---
| | -- Freibuger Solver
XML --- |---- Franz�sischer Solver
| |-- Hets -- Bremer Solver
Applikation2 ----- |
ConstraintCASL
|
Semantische Modelle/Korrektheit (CASL, HAsCASL)
XML-Einlesen in Haskell:
HXT (siehe OMDoc.XmlHandling): kann Namespaces
(HaXML: kann Haskell-Datenypen in DTDs umwandeln)
Outline der Diplomarbeit
Qualitative Constraint-Kalk�le (siehe Thomas)
CASL (siehe Paper T. Mossakowski: Relating CASL with Other Specification Languages:
the Institution Level Theoretical Computer Science 286, p. 367-475, 2002.)
CASL-Formeln nur ganz kurz
ConstraintCASL
Signaturen, Signaturmorphismen (aus CASL)
Modelle (aus CASL)
Formeln
Erf�lltheit von Formeln
optional: Erf�lltheitsbedingung
M |= sigma(phi) <=> M|_sigma |= phi
f�r Signaturmorphismus sigma:Sigma_1->Sigma_2
M \in Mod(Sigma_2), phi\in Sen(Sigma_1)
Formalisierung von Kalk�len in ConstraintCASL
Constraint-Solver (auch in ihren Eigenheiten)
�bersetzungen zwischen den verschieden Formaten
praktischer Vergleich
Anwendung
�bersetzungen bis 30.Juni
ConstraintCASL -> Bremer Solver
Bremer Solver -> ConstraintCASL
Parser (mit Parsec), der Kompositionstabelle des Bremer Solvers
parsiert und ConstraintCASL-Spec (abstrakte Syntax) zur�ckgibt
Das kann das als Option in Hets eingebunden werden (Christian Maeder)
Freiburger Constraint-Solver angucken im Juli
�bersetzungen bis 31. Juli
ConstraintCASL -> Freibuger Solver/XML-Format
Option: comptable.xml
Freibuger Solver/XML-Format -> ConstraintCASL
************************************************
Hendrik (Till)
************************************************
user hiben
Anzeigen von lokalen Beweiszielen bei nicht-gesetztem Cons: Till fragen
************************************************
Mingyi (Till)
************************************************
user xinga
************************************************
Heng (Klaus)
************************************************
OWL-DL logic
OWL-DL (<)-> CASL-DL
emacs mode:
highlight does not work properly for HasCASL/Set.het or UserManual/Sbcs.casl
some operation symbols
show hets output immediately
C-c C-g for hets -g
when hets terminates abnormally (e.g. with a fail), emacs loops
C-n jumps to the next error, but the message windows is not always scrolled
in such a way that the error is at the top (for long error lists)
should work with parser error messages as well (adapt these?)
easier setup of emacs mode
by just loading one file
integration into installer
checking for emacs and offer adaption of ~/.emacs
Version for XEamcs?
************************************************
Ken (Till)
************************************************
user ken
************************************************
further task 1
************************************************
************************************************
further task 2
************************************************
************************************************
further task 3
************************************************
************************************************
further task 4
************************************************
done
************************************************
further task 5
************************************************
************************************************
remaining stuff
************************************************
************************************************
Daniel
************************************************
generate infrastructure for circular coinduction
CCS example: commutativity of || by coinduction
************************************************
Christian
************************************************
Isabelle coding (let, case, etc.)
Coding out sub-types in HasCASL
collect the patches for programatica (or create a package)
- conv (SN i p) = PN i (S p)
+ conv (SN i p) = PN i (Sn (show i) p)
fixes translation error of Pair
simplification of HasCASL sentences (omit types)
Logic COL is a ruin
Haskell modules: hiding, renaming
- group the axioms according to their leading operation/predicate symbol,
i.e. the f resp. the p in
forall x_1:s_n .... x_n:s_n . phi => f(t_1,...,t_m)=t
forall x_1:s_n .... x_n:s_n . phi1 => p(t_1,...,t_m)<=>phi
if there are axioms not being of this form, output error
Static analysis for HasCASL
pattern analysis for program equations
implemented only atomic subtyping
Weak amalgamation analysis?
Instantiate Transformation Application system for HasCASL?
Automatic generation of Haskell (for a HasCASL subset)
Proofs in HasCASL
Case study
Coding HasCASL -> Isabelle with definedness axioms
only strict functions are defined
Isabelle interface
One emacs with spec and proof buffer
Reload button should rebuild buffers while keeping as much as possible
keep structuring of Hets theories
************************************************
Rainer (Klaus)
************************************************
implement a catch for calling MathServ based on the catch in runSpass
- a "connection refused" error should be handled differently:
"MathServ not running! Please contact
<hets-devel@informatik.uni-bremen.de>"
for the transition to ghc-6.6 spassProve must be corrected
- the regexp library changed in functionality
maybe the parse of the proof tree should be done without regular
expressions
performance improvements
- use seq to force the evaluation of the proof trees while in
GenericATP window otherwise "Exit prover" takes a long time
Example: seq (length $ show $ prooftree proofStatus) proofStatus
in GenericATP
usability improvements
- forceFocus to read-only textedit widgets in textSaveDisplay windows
upon left mouse click
also add for Details window
- update of goal list-boxes should not longer move visible
area of the list
involves getting and setting of visible area
code cleanup and documentation where necessary and possilbe
in SPASS/* and GUI/GenericATP*, GUI/Proofmanagement.hs
for ProofManagement-GUI
mark imported theorems for selection
extend Logic.Prover SenStatus with wasTheorem
somewhere in computeTheory implement setting of wasTheorem
if wasTheorem not appears with right status in ProofManagementGUI
add wasTheorem to Common.Result.Named, as well
and adapt conversion functions of SenStatus to Named and vice
versa in Logic.Prover
Mark old theorems in "Axioms to include" Listbox with prefixed
"(Th)"
add button "Deselect former Theorems"
test all this with CASL-lib/Calculi/Space/RCCVerification.het
all nodes without incoming heterogeneous edges are provable with
SPASS
************************************************
Martin
************************************************
user mkhl
************************************************
Klaus
************************************************
for ProofManagement-GUI
provide structured (based on spec-names) selection/deselection facility
of axioms and theorems
trace if liniarity of sentences along development is given
for consistency checking with Isabelle, look at the following SAT-Solvers:
MChaff, ZChaff, Berkmin
Consistency checker interface
via global interface, accessible from global and node menus
use falseSentence from Logic.Logic (property: holds in no model)
proved -> inconsistent
disproved -> consistent (assuming completeness)
batch mode for automatic provers such as SPASS
(use automatic flag for provers)
batch interface for Isabelle
each goal is proved separatedly, with a time limit enforced
by killing the process
the tactic is
"using Ax1 ... Axn by auto"
where Ax1 ... Axn is the list of all axioms.
"auto" could be replaced with "best", "blast" etc. (user selection)
Ignore axiom selection for interactive provers
Translation between Achim's ontology data structure and CASL (in Hets)
visualization of "taxonomy" of CASL signatures
(subsorts = inheritance, unary preds = concepts, binary preds = relations)
last two ... partially done
Recognize guarded fragment of CASL:
G ::= forall x . At(x) => G where At is a conjunction of atoms
| exists x . At(x) /\ G
Joost Visser wg. ATerms in Haskell => neues Repository
************************************************
Till
************************************************
Regulate concurrent proving
.dg files: store only current library; import .dg files for other libraries
Markus' Bsp:
Isabelle: use meta-quantifiers
local subsumption ?
better syntax (Tina)
check for proved theorems
AbstractGraphView: switch to Result monad
unite or rename consCheck and cons_checkers
BinInt.casl: revealing in Int1 does not work correctly
from Stefan W�lfl:
computeTheory does not work across library imports
local theorems
all nodes named
hierarchical Isabelle theories
daVinci printing is not adequate
hiding of internal nodes does not work
CSPs
----
FOL without quantifiers and with uniform disjunctions
(i.e. x R1 y \/ x R2 y)
(with and without =)
algorithmic path consistency over a relation algebra
plug in reasoner for this
develop correctness results (algorithmic path consistency=path consistency)
within CASL
CASL sublogics:
---------------
FOL without quantifiers (with and without =)
guarded fragment
Prop
[from DOLCE cooperation:
quit wish!
ontology mediation via pushouts/pullbacks/pulations
Robinson consistency with shared theory constructed via pre-image?
show theorem links between same instances of different parameterized
specs (where one is an extension of the other one)
link menu for %implies, $def, %cons, even without open proof obligation
for a proved theorem, show minimal part of DG needed for proof
cons, def, mono for nodes
Isabelle interface: each qed should write proof info into file
globally display nodes containing symbols mapped "twice" (i.e. via
different signature morphisms)
and add a menu for each node allowing for tracking the different
uses of the symbols/concepts
topsort coding: partial functions as relations?
]
theorem link menu for proof obligations
UserManual/Chapter7.casl: local thm link starting from Monoid leads to type error
in Isabelle. Reason: Inlineaxioms does not translate ga_totality axioms
correctly.
Buffer.het, sublogic of node Buffer:
Fail: illegal node type in sublogic computation
J�rgen Zimmer, Saarbr�cken+Edinburgh, Beweiserkennung f�r versch. Logiken im MathWeb
for CSP-CASL example: with logic
heterogeneous static ana
theorem links between nodes in different libraries
basicProofs: use info about used axioms
ensure that axiom/thm names are unique
Overload / inlineAxioms: injections
remove "prove" menu in abstracted dg
better sublogic analysis in codings
thy files in subdir
adjust path for thy files, such that hets can also be started from subdirs
Restrict Sonjas simplifications to HasCASL
add suitable axioms to simplifier and CR
computeTheory: remove double axioms
add suitable axioms to simplifier and classical reasoner
better display of internal nodes (use tooltip?)
update Hets, CASL, daVinci on web page
CASL2PCFOL: x_i -> t_i, t=[inj(x_i)] (and what not!)
packing of binaries: add hets-update, refer to TclTk
CCC interface
test for sublogic before applying comorphism
Missing points for heterogeneous WADT 04 example:
- coding to Isabelle: translate sort gen constraints
- Improve adapation to Isabelle's lexis
Isabelle: (ask Christoph)
remove datatypes from sort list
prove local thm link (=> green)
"prove" menu with choice windows
incorporate sublogics
sublogic translation table
better interaction between Isabelle instance (for one node)
+ selection of single goals that are proved
=> use PGIP interface (Christoph, David)
correct show theory
Keep proofs and lemmas in .thy files (kind of merge)
CASL-like syntax
CASL annotation for lemmas that should be used in proof
inherit CASL's mixfix syntax
Signatures versus theories: where to store additional infos?
comp(id,x)=x for comorphism names
Generalise CASL2Modal
Mixfix analysis + typecheck for modality axiomatizations
Modal logics: modal logic, temporal logic, mu calculus
+ translations (e.g. modal to FOL)
CASL->Haskell with free DTs (mark sortgens) + recursion
- List[Dec] wird List[Pos]
- node numbers do not match
- thm links with external target should be provable as well
Remove warnings
Different types of logic translations
Improve Static analysis of structured specs
Development graph calculus, Strategies for DG rules
use graph grammars to model rules? transformation units?
Management of change
Integrate provers
Otter model checker
FOL-prover by Uli Furhbach
modal logic: IRIT, Toulouse. Tableaux prover LOTREC, Andreas Herzig
Isabelle codings: www.inf.ethz.ch/~vigano
Renate Schmidt, Manchester: uses FOL prover for description logic
(as efficient as DL-specific tools!)
Look at PROSPER toolkit
consistency: see IJCAR-workshop on non-provability in Cork
IJCAR workshop about logical frameworks and meta-languages
Integrate CCC
Encodings
Errors:
Klaus' wayfinding example
ask Detlef: critical pairs, Fossacs paper by Francesco
UniForM workbench:
first steps towards CASL instance, using ATerms and re-using MMISS instance
variants for specs (needed for DOLCE: CASL variant, DL variant, ...)
Integration of MAYA and Isabelle/HOL (global HOL-Coding of
Grothendieck logic)
+ for TAS: reflection of HOL in HOL, to be composed with encodings
(i.e. signatures, axioms, signature morphisms in HOL,
re-use ML signatures) (Einar)
Display Specs as daVinci subgraphs
User interface
--------------
Logic graph window
Input text window
Development graph window
Prover windows
************************************************
FOR STUDENTS
************************************************
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)
Packaging of installation
GUI (vgl. VSE)
with Eclipse, WXHaskell or GTk?
how to integrate with event system of UniForM workbench?
integrate graphviz (or use Java interface for racer? or Isabelle browser? or...?)
this interacts with GUI!
Data.Serizable (only when ghc supports it) better: rely on pointer equality
XML interface
increase performance
integrate QuickCheck: come to lecture!
++++++++++++++++++++++++++++++++++++++++++++++++
Remaining things
++++++++++++++++++++++++++++++++++++++++++++++++
Mark-Oliver Stehr, Hamburg cf. HOL-Nurpl-Translation in Maude
Coq, PTT in Maude
Proofs with basic datatypes
Verbesserung der Fehlermeldungen
Improve encoding: CATS/basic_encode.sml (3 days)
More HOL-theories: CATS/HOL-CASL/struct_encode.sml (2 days)
Renamings in hide-elimination: CATS/struct_encode.sml, CATS//flatten.sml (1 week)
Example of Agnes und Frank: proofs in HOL-CASL (2 days)
Term input+errors in cmd line interface: CATS/casl/casl.sml (1 day)
Examples for cond rewriting -> Christophe
Doku: VSE-Prover, VSE-Method VSE-demo in Bremen?
Adapt more stuff from isabelle/src/HOL/Tools/datatype_package.ML (2 weeks)
Eigene IsaWin-Instanz mit CASL-RS statt HOL-RS
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)
Encoding of structured free (3 days)
Encoding of structured cofree (2 weeks)
Eingabesyntax als Mix zwischen CASL und HOL (3 days)
Adapt Isabelle unions to CASL unions (1 week)
IsaWin git/src/isa_ext/casl_thy.sml (1 week)
Generate Proof obligations (1 week)
Add renaming to Isabelle kernel (2 months)
Basic datatypes CASL-lib/Basic/basic.casl
Repository mit korrekten und fehlerhaften Specs
HetCATS User manual, Doku fuer Environments (2 weeks)
Conversion ASF/SDF-Parser -> abstract syntax (in Haskell)
Comparsion of parsers (ML-yacc parser, SDF-Parser)
Conversion-Tool CASL 1.0 => CASL 1.0.1 komplettieren
PVS anbinden (Kooperation mit Cachan?)
Portations: Intel-Solaris, Mac OS-10 (2 weeks)
(X)Emacs mode for CASL, hide Display Annotations (2 weeks) -> Raffael Sturm
Views on CASL specs: CATS/viewer.sml (2 weeks)
Uebersetzung von CASL-LaTeX-Spezifikationen nach ASCII
Module graph CATS/module_graph.sml (1 week) -> Maya?
ATerms via XML: CATS/aterms.sml (2 weeks)
Neues Tool-Schaubild auf Web-Seiten ver�ffentlichen
Library management: CATS/lib_ana.sml (2 weeks)
Version management/Uniform Workbench: CATS/lib_ana.sml (2 months)
{- This does not work due to needed ordering:
instance Functor Set where
fmap = mapSet
instance Monad Set where
return = unitSet
m >>= k = unionManySets (setToList (fmap k m))
-}
Aufbau von comptable
--------------------
[("normal","normal","normal"),
("normal","inclusion","normal"),
("inclusion","normal","normal"),
("inclusion","inclusion","inclusion")]
Aufbau von ginfo
--------------------
Mit initgraphs erzeugen
Aufbau des Graphen selbst
------------------------
addnode
addlink
Trac modules
------------
basic-library CASL-lib
development-graph Static Proofs
driver ATC, Driver, GUI, Taxonomy, pretty
hets Common, doc, test, utils
logic-casl CASL
casl-ext CASL_DL, CoCASL, COL, ConstraintCASL, Modal, OWL_DL
logic-hascasl HasCASL, Haskell
logic Logic Syntax
csp-casl CspCASL
provers Isabelle, SPASS
comorphisms Comorphisms, ToHaskell
omdoc OMDoc
pgip PGIP
third-party fgl, haifa-lite, hcl, hxt, syb-generics, uni