All Projects → frex-project → agda-fragment

frex-project / agda-fragment

Licence: MIT license
Algebraic proof discovery in Agda

Programming Languages

Agda
84 projects

Projects that are alternatives of or similar to agda-fragment

ataca
A TACtic library for Agda
Stars: ✭ 47 (+67.86%)
Mutual labels:  agda
msla2014
wherein I implement several substructural logics in Agda
Stars: ✭ 24 (-14.29%)
Mutual labels:  agda
agda
The theory of algebraic graphs formalised in Agda
Stars: ✭ 67 (+139.29%)
Mutual labels:  agda
AutoInAgda
Proof automation – for Agda, in Agda.
Stars: ✭ 38 (+35.71%)
Mutual labels:  agda
org-agda-mode
An Emacs mode for working with Agda code in an Org-mode like fashion, more or less.
Stars: ✭ 14 (-50%)
Mutual labels:  agda
cain
Category theory applied to functional programming (undergraduate project)
Stars: ✭ 27 (-3.57%)
Mutual labels:  agda
cat
A formalization of category theory in cubical Agda
Stars: ✭ 50 (+78.57%)
Mutual labels:  agda
language-agda
Agda language support for the Atom editor
Stars: ✭ 13 (-53.57%)
Mutual labels:  agda
agda-mode-vscode
agda-mode on VS Code
Stars: ✭ 112 (+300%)
Mutual labels:  agda
cubical-1lab
A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory
Stars: ✭ 93 (+232.14%)
Mutual labels:  agda
agda-presburger
Deciding Presburger arithmetic in agda
Stars: ✭ 26 (-7.14%)
Mutual labels:  agda
ConsHoTT
Constructive Interpretations of HoTT
Stars: ✭ 33 (+17.86%)
Mutual labels:  agda
MtacAR
Mtac in Agda
Stars: ✭ 29 (+3.57%)
Mutual labels:  agda
tt-in-cubical
Type Theory in Type Theory using Cubical Agda
Stars: ✭ 12 (-57.14%)
Mutual labels:  agda
agda-from-nothing
A workshop on learning Agda with minimal prerequisites.
Stars: ✭ 74 (+164.29%)
Mutual labels:  agda
agda-mode
Accessing Agda's interaction mode via command line & external tactic for Agda.
Stars: ✭ 26 (-7.14%)
Mutual labels:  agda
dicy
A builder for LaTeX, knitr, literate Agda, literate Haskell and Pweave that automatically builds dependencies.
Stars: ✭ 22 (-21.43%)
Mutual labels:  agda
agda-language-server
Language Server for Agda
Stars: ✭ 81 (+189.29%)
Mutual labels:  agda
Agda
Agda is a dependently typed programming language / interactive theorem prover.
Stars: ✭ 1,699 (+5967.86%)
Mutual labels:  agda
gentle-intro-to-reflection
A slow-paced introduction to reflection in Agda. ---Tactics!
Stars: ✭ 58 (+107.14%)
Mutual labels:  agda

fragment

FRex AGda augMENTation

Requirements: Agda 2.6.1 and Standard Library 1.4

An extensible tactic for the Agda proof assistant, capable of synthesising proofs of algebraic identities. The tactic (and its underlying formalisms) are all --without-K --safe, so it's compatible with a variety of Agda configurations and, most importantly, constructive.

hello_world :  {x y}  (2 + x) + (y + 3) ≡ x + (y + 5)
hello_world = fragment CSemigroupFrex +-csemigroup

The tactic builds on a library supporting the presentation of arbitrary finitary, mono-sorted (first-order) equational-theories and can automatically derive specifications for solvers for their class of models (free extensions). The tactic is compatible with any free extension making it very flexible: if you have an interesting algebraic structure, you can write a solver and immediately leverage the tactic.

At present, we have built-in support for:

  • Semigroups
  • Commutative semigroups
  • ... (more to come)

For some more examples, see src/Fragment/Examples.

For a browsable overview of the interface, see the API documentation.

For a full description see the following:

      Proof Synthesis with Free Extensions in Intensional Type Theory
      Nathan Corbyn
      Master's Thesis 2021
      [bibtex] [pdf]

It's also worth checking out the other libraries developed as part of the Frex Project, and our publications.

Ubuntu build

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].