150 likes | 276 Views
Franz Lichtenberger Franz.Lichtenberger@ scch.at +43 7236 3343 8 55 www.scch.at. A Plea for Using Algebraic Specifications. as a Basis for Formal MKM. Initiated by RISC. Historical Remarks(1). 1972: First paper by Sir C.A.R. Hoare 1974-76: ADJ-Group, Guttag/Horning, Liskov/Zilles,...
E N D
Franz Lichtenberger Franz.Lichtenberger@scch.at+43 7236 3343 855 www.scch.at A Plea for Using Algebraic Specifications as a Basis for Formal MKM Initiated by RISC
Historical Remarks(1) • 1972: First paper by Sir C.A.R. Hoare • 1974-76: ADJ-Group, Guttag/Horning, Liskov/Zilles,... • 1983: B.Kutzler, F.Lichtenberger„Bibliography of Abstract Data Types“more than 500 references! Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Historical Remarks(2) • Several AlgSpec languages developed: OBJ(3), ASL, ACT ONE/TWO, Larch, ... • AlgSec Concepts used in CA Systems:Scratchpad, Axiom, Magma, (Reduce 4), ... • CoFI: The Common Framework Initiative for Algebraic Specification and Development, EU-Project, started 1995 Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
CASL • The specification language developed by CoFI:CASL – The Common Algebraic Specification Language • Family of languages: extendable and restrictable • CATS – The CASL Tools Set: Still under development (by the Bremen CASL Team) Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
CASL example(1) spec LISTNAT = free type Nat ::= 0 | succ(Nat) op __+__: Nat*Nat->Nat vars m,n : Nat . %[addNat_0] 0 + m = m . %[addNat_succ] succ(n) + m = succ(n + m) sort Elem free type List ::= nil | __::__(Elem; List) op __++__: List * List -> List var x: Elem; K,L: List . %[app_nil] nil ++ K = K . %[app_cons] (x::K) ++ L = x ::(K++L) Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
CASL example(2) op rev: List -> List var x: Elem; L:List . %[rev_nil] rev(nil)= nil . %[rev_cons] rev (x::L) = rev(L) ++ (x::nil) op len: List -> Nat var x: Elem; L:List . %[len_nil] len(nil)=0 . %[len_cons] len(x::L) = succ(len(L)) end Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Later developments • Modules • Objects and Components • Concurrency • Etc. etc. • Specification of entire software systems Dead End Street! Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Abstract Data Types: Sorts Operations Axioms Mathematical Models, Domains, Structures, Spaces, ... : Sets Basic functions and predicates Axioms Software vs. Math It‘s the same thing! Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Features (1) • Strong typing, subtypes, partiallity, error handling, ... • Parametrized Types„Mathematical domain towers“ Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Types M : SquareMatrix(3, MultivariatePolynomial( [x,y,z], GF(2,1) ) ) Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Features(2) • Formal semantics:Initial, final, loose, behavioral, ... • Views: e.g. every boolean algebra can be VIEWED as a partial ordering Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Features(3) • Independent of particular logics: „Institution“ (Goguen/Burstall, 1992) (Sign, Sen, Mod, Sat) • Signatures • Sentences • Models • Satisfaction relation Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Features(4) • Easy to communicate, exchange, ... viaXML based protocols • Semantics is included! • First call of FP6:„Semantics-based knowledge management“ Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Two suggestions • Bechmark example:AlgSpec of Hilbert Space Theory(compare with Theorema/Risc project) • Get (more) AlgSpec people onboard Algebraic Specifications - Bologna/Bertinoro, 18.02.2003
Conclusions • It would be unwise to ignore 25+ years of research on AlgSpec that • can serve (formal) MKM very well. • Give AlgSpec a (second) chance! Algebraic Specifications - Bologna/Bertinoro, 18.02.2003