Matita

From Wikipedia, the free encyclopedia
(Redirected from Matita proof assistant)
Jump to navigation Jump to search
Matita
DeveloperMatita team
Initial release1999
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inOCaml
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux
    Available inEnglish
    TypeTheorem proving
    LicenseGPL
    Websitehttp://matita.cs.unibo.it at the Wayback Machine (archived 2023-02-04)

    Matita[1] is an experimental proof assistant under development at the Computer Science Department of the University of Bologna. It is a tool aiding the development of formal proofs by man–machine collaboration, providing a programming environment where formal specifications, executable algorithms and automatically verifiable correctness certificates naturally coexist.

    Matita is based on a dependent type system known as the calculus of (co)inductive constructions (a derivative of the calculus of constructions), and is compatible, to some extent, with Rocq.

    The word "matita" means "pencil" in Italian (a simple and widespread editing tool). It is a reasonably small and simple application,[2] whose architectural and software complexity is meant to be mastered by students, providing a tool particularly suited for testing innovative ideas and solutions. Matita adopts a tactic-based editing mode; (XML-encoded) proof objects are produced for storage and exchange.

    Main features

    [edit | edit source]

    Existential variables are native in Matita, allowing a simpler management of dependent goals.[3]

    Matita implements a bidirectional type inference algorithm[4] exploiting both inferred and expected types.

    The power of the type inference system (refiner) is further augmented by a mechanism of hints[5] that helps in synthesizing unifiers in particular situations specified by the user.

    Matita supports a sophisticated disambiguation strategy[6] based on a dialog between the parser and the typechecker.

    At the interactive level, the system implements a small step execution of structured tactics[7] allowing a much better management of the proof development, and naturally leading to more structured and readable scripts.

    Applications

    [edit | edit source]

    Matita has been employed in CerCo (Certified Complexity): a FP7 European Project focused on the development of a formally verified, complexity preserving compiler from a large subset of C to the assembly language of a MCS-51 microprocessor.

    Documentation

    [edit | edit source]

    The Matita tutorial[8] provides a pragmatic introduction to the main functionalities of the Matita interactive theorem prover, offering a guided tour through a set of non-trivial examples in the field of software specification and verification.

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Andrea Asperti, Wilmer Ricciotti, Claudio Sacerdoti Coen, Enrico Tassi. "The Matita Interactive Theorem Prover": CADE-23, LNCS 6803, 2011, pp. 64-69.
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Andrea Asperti, Wilmer Ricciotti, C Sacerdoti Coen, Enrico Tassi. "A new type for tactics": Technical Report UBLCS-2009-14. June 2009.
    4. ^ Andrea Asperti, Wilmer Ricciotti, C Sacerdoti Coen, Enrico Tassi. "A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions" Logical Methods in Computer Science, V.8, n. 1
    5. ^ Andrea Asperti, Wilmer Ricciotti, C Sacerdoti Coen, Enrico Tassi. "Hints in unification": LNCS V.5674, 2009, pp 84-98
    6. ^ Claudio Sacerdoti Coen, Stefano Zacchiroli "Efficient Ambiguous Parsing of Mathematical Formulae" LNCS V.3119, 2004, pp 347-362
    7. ^ Claudio Sacerdoti Coen, Enrico Tassi, Stefano Zacchiroli "Tinycals: Step by Step Tacticals" ENTCS V.174, n.2, 2007, Pages 125–142
    8. ^ Andrea Asperti, Wilmer Ricciotti, Claudio Sacerdoti Coen "Matita Tutorial" Journal of Formalized Reasoning, V.7, n. 2, 2014, Pages 91-199
    [edit | edit source]