150 likes | 287 Vues
This paper discusses the evolution and significance of algebraic specifications in formal mathematical knowledge management (MKM). It highlights historical contributions, development of specification languages such as CASL, and their applications in systems like Axiom and Magma. The presentation covers key concepts, features, and the essential role of algebraic specifications in providing a formal foundation for mathematical structures. Concluding with a call for renewed interest and exploration in algebraic specifications, it emphasizes a wealth of research that can greatly benefit the MKM field.
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