GithubHelp home page GithubHelp logo

jonaprieto / athena Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 2.0 15.42 MB

Translates Metis ATP proofs to the Agda code

License: MIT License

Makefile 2.42% Haskell 11.33% Logos 0.57% Yacc 2.08% TeX 82.28% Agda 1.28% Shell 0.05%
agda haskell proof-assistant theorem-proving type-theory

athena's People

Contributors

asr avatar jonaprieto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

asr tiancheng-luo

athena's Issues

Problem in parsing or in proof generation?

The bug is with this problem:

$ cat /test/prop-pack/problems/implication/impl-3.tstp
fof(a1, axiom, (p => q)).
fof(a2, axiom, (q => r)).
fof(goal, conjecture, (p => r)).
fof(subgoal_0, plain, (p => r), inference(strip, [], [goal])).
fof(negate_0_0, plain, (~ (p => r)), inference(negate, [], [subgoal_0])).
fof(normalize_0_0, plain, (~ q | r), inference(canonicalize, [], [a2])).
fof(normalize_0_1, plain, (~ p | q), inference(canonicalize, [], [a1])).
fof(normalize_0_2, plain, (~ r & p),
    inference(canonicalize, [], [negate_0_0])).
fof(normalize_0_3, plain, (p), inference(conjunct, [], [normalize_0_2])).
fof(normalize_0_4, plain, (~ r), inference(conjunct, [], [normalize_0_2])).
cnf(refute_0_0, plain, (~ q | r),
    inference(canonicalize, [], [normalize_0_0])).
cnf(refute_0_1, plain, (~ p | q),
    inference(canonicalize, [], [normalize_0_1])).
cnf(refute_0_2, plain, (p), inference(canonicalize, [], [normalize_0_3])).
cnf(refute_0_3, plain, (q),
    inference(resolve, [$cnf(p)], [refute_0_2, refute_0_1])).
cnf(refute_0_4, plain, (r),
    inference(resolve, [$cnf(q)], [refute_0_3, refute_0_0])).
cnf(refute_0_5, plain, (~ r),
    inference(canonicalize, [], [normalize_0_4])).
cnf(refute_0_6, plain, ($false),
    inference(resolve, [$cnf(r)], [refute_0_4, refute_0_5])).

As you can see, there is no more than one subgoal, in spite of that, its agda code have 4 proofs!! using 4 subgoals that obviously they don't exist. So, big mistake!

$ cat /test/prop-pack/problems/implication/impl-3.agda
------------------------------------------------------------------------------
-- Athena version 0.1-e9f0f55.
-- TSTP file: impl-3.tstp.
------------------------------------------------------------------------------

module impl-3 where

------------------------------------------------------------------------------

open import ATP.Metis 3 public
open import Data.Prop 3 public

------------------------------------------------------------------------------

-- Variables.

p : Prop
p = Var (# 0)

q : Prop
q = Var (# 1)

r : Prop
r = Var (# 2)

-- Axioms.

a₁ : Prop
a₁ = (p ⇒ q)

a₂ : Prop
a₂ = (q ⇒ r)

-- Premises.

Γ : Ctxt
Γ = ∅ , a₁ , a₂

-- Conjecture.

goal : Prop
goal = (p ⇒ r)

-- Subgoal.

subgoal₀ : Prop
subgoal₀ = (p ⇒ r)

------------------------------------------------------------------------------
-- Proof.
------------------------------------------------------------------------------

proof₀ : Γ ⊢ subgoal₀
proof₀ =
  (RAA
    (atp-canonicalize
      (atp-canonicalize
        (weaken (atp-negate subgoal₀)
          (assume {Γ = [ a₁ ]} a₂)))))

proof₁ : Γ ⊢ subgoal₁
proof₁ =
  (RAA
    (atp-canonicalize
      (atp-canonicalize
        (weaken-Δ₁
          (∅ , a₂ , atp-negate subgoal₁)
          (assume {Γ = ∅} a₁)))))

proof₂ : Γ ⊢ subgoal₂
proof₂ =
  (RAA
    (atp-canonicalize
      (atp-conjunct (p)
        (atp-canonicalize
          (atp-strip
            (assume {Γ = Γ}
              (atp-negate subgoal₂)))))))

proof₃ : Γ ⊢ subgoal₃
proof₃ =
  (RAA
    (atp-resolve₄ (p)
      (atp-canonicalize
        (atp-conjunct (p)
          (atp-canonicalize
            (atp-strip
              (assume {Γ = Γ}
                (atp-negate subgoal₃))))))
    (atp-canonicalize
      (atp-canonicalize
        (weaken-Δ₁
          (∅ , a₂ , atp-negate subgoal₃)
          (assume {Γ = ∅} a₁))))))

proof₄ : Γ ⊢ subgoal₄
proof₄ =
  (RAA
    (atp-resolve₄ (q)
      (atp-resolve₄ (p)
        (atp-canonicalize
          (atp-conjunct (p)
            (atp-canonicalize
              (atp-strip
                (assume {Γ = Γ}
                  (atp-negate subgoal₄))))))
      (atp-canonicalize
        (atp-canonicalize
          (weaken-Δ₁
            (∅ , a₂ , atp-negate subgoal₄)
            (assume {Γ = ∅} a₁)))))
    (atp-canonicalize
      (atp-canonicalize
        (weaken (atp-negate subgoal₄)
          (assume {Γ = [ a₁ ]} a₂))))))

proof₅ : Γ ⊢ subgoal₅
proof₅ =
  (RAA
    (atp-canonicalize
      (atp-conjunct ((¬ r))
        (atp-canonicalize
          (atp-strip
            (assume {Γ = Γ}
              (atp-negate subgoal₅)))))))

proof₆ : Γ ⊢ subgoal₆
proof₆ =
  (RAA
    (id -- resolve 4. (r)
      (atp-canonicalize
        (atp-conjunct ((¬ r))
          (atp-canonicalize
            (atp-strip
              (assume {Γ = Γ}
                (atp-negate subgoal₆))))))
    (atp-resolve₄ (q)
      (atp-resolve₄ (p)
        (atp-canonicalize
          (atp-conjunct (p)
            (atp-canonicalize
              (atp-strip
                (assume {Γ = Γ}
                  (atp-negate subgoal₆))))))
      (atp-canonicalize
        (atp-canonicalize
          (weaken-Δ₁
            (∅ , a₂ , atp-negate subgoal₆)
            (assume {Γ = ∅} a₁)))))
    (atp-canonicalize
      (atp-canonicalize
        (weaken (atp-negate subgoal₆)
          (assume {Γ = [ a₁ ]} a₂)))))))

proof : Γ ⊢ goal
proof =
  ⇒-elim
    atp-splitGoal
    proof₀

Agda and Agda standard library versions

I'm using Agda 2.5.4. Following the instructions here I run

make install-libraries

but the version installed of the standard library (version 0.14) isn't compatible with Agda 2.5.4.

Travis failing

Andrés, @asr

I forgot when you said something about using the standard library of Agda with Athena, it was to fix travis.

Travis #76:

...
/basic-3.agda
/home/travis/agda-stdlib/src/Data/Empty.agda:13,5-5
/home/travis/agda-stdlib/src/Data/Empty.agda:13,5: Parse error
FOREIGN<ERROR>
 GHC data AgdaEmpty #-}
...

Was about installing Agda using cabal?

Agda version

In some parts of Athena, Agda-Metis or Agda-Prop you say they support Agda 2.5.3, 2.5.3+ or 2.5.4. I suggest only support 2.5.4 and fix the information.

`make check` fails: missing timeout commad?

I'm getting the following error:

$ make check
...
===================================================================
================== Type-checking Agda files =======================
===================================================================
[!] AGDA_DIR=<PATH>/athena/lib/.agda
-------------------------------------------------------------------
test/prop-pack/problems/basic/basic-04.agda
Can't exec "49m": No such file or directory at $HOME/bin/timeout line 100.

Type-checking error in test case `prop-metis/prop-20.agda`

$ agda test/prop-pack/problems/prop-metis/prop-20.agda
...
¬ (¬ (p ⇔ q) ⇔ r) ∧ (p ∧ q) != ¬ (¬ (p ⇔ q) ⇔ r) of type
PropFormula
when checking that the expression
∧-intro (∧-intro (∧-intro proof₀ proof₁) proof₂)
(∧-intro proof₃ (∧-intro proof₄ proof₅))
has type Γ ⊢ split xorassoc

Shift/Reduce issues

There are some shift/reduce problems. I'm still getting this:

$ happy src/Athena/TSTP/Parser.y --info=output.txt
shift/reduce conflicts:  2
$ cat output.txt | more
-----------------------------------------------------------------------------
Info file generated by Happy Version 1.19.5 from src/Athena/TSTP/Parser.y
-----------------------------------------------------------------------------

state 245 contains 1 shift/reduce conflicts.
state 288 contains 1 shift/reduce conflicts.
...

CC'ing @asr

Uh complexity

Missing the explanation of the formulation of uh functio, Eq (4)

Type-checking error in test case impl-09.agda

$ athena --version
Athena version 0.1-7017694

$ agda --library=test test/prop-pack/problems/implication/impl-09.agda
<PATH>/test/prop-pack/problems/implication/impl-09.agda:53,6-58,39
Var (# 1) != ⊥ of type PropFormula
when checking that the expression
simplify-thm ⊥
(canonicalize-thm q (weaken (¬ subgoal₀) (assume {Γ = ∅} a₁)))
(canonicalize-thm (¬ r ∧ (¬ q ∨ r)) (assume {Γ = Γ} (¬ subgoal₀)))
has type
_Γ_16 , .Data.PropFormula.Theorems.Classical.¬ _φ_17 ⊢
.Data.PropFormula.Theorems.Classical.⊥

removing unnecessary steps in the proof

We want to avoid some steps in the proof that come from unnecessary application of inference rules when they do not change the formula at all. To begin with something, we have these cases:

$ cat test/prop-pack/problems/implication/impl-7.tstp
...
fof(normalize_0_2, plain, ($false),
    inference(simplify, [], [normalize_0_0, normalize_0_1])).
cnf(refute_0_0, plain, ($false),
    inference(canonicalize, [], [normalize_0_2])).

and

$ cat test/prop-pack/problems/implication/impl-18.tstp
fof(normalize_1_0, plain, ($false),
    inference(canonicalize, [], [negate_1_0])).
cnf(refute_1_0, plain, ($false),
    inference(canonicalize, [], [normalize_1_0])).

`make check` fails: missing `Data.Prop`

I'm getting the following error:

$ make check
...
[!] To complete the installation, please set the AGDA_DIR variable:
    $ export AGDA_DIR=<SOME_PATH>/athena/lib/.agda
...
===================================================================
================== Type-checking Agda files =======================
===================================================================
[!] AGDA_DIR=<SOME_PATH>/athena/lib/.agda
-------------------------------------------------------------------
test/prop-pack/problems/basic/basic-3.agda
<SOME_PATH>/athena/test/prop-pack/problems/basic/basic-3.agda:11,13-22
Failed to find source of module Data.Prop in any of the following
locations:
  <SOME_PATH>/athena/Data/Prop.agda
  <SOME_PATH>/athena/Data/Prop.lagda
  <SOME_PATH>/athena/lib/agda-stdlib/src/Data/Prop.agda
  <SOME_PATH>/athena/lib/agda-stdlib/src/Data/Prop.lagda
  <SOME_PATH>/athena/test/prop-pack/Data/Prop.agda
  <SOME_PATH>/athena/test/prop-pack/Data/Prop.lagda
  <SOME_PATH>/athena/test/prop-pack/problems/Data/Prop.agda
  <SOME_PATH>/athena/test/prop-pack/problems/Data/Prop.lagda
...
 when scope checking the declaration
  import Data.Prop as .#Data.Prop-13550926825803052228

So, I export the AGDA_DIR variable

$ export AGDA_DIR=<SOME_PATH>/athena/lib/.agda

but I get the same error running make check again.

PDF file in the repository

The Reconstructing-Propositional-Proofs-in-Type-Theory.pdf file shouldn't be in the repo. Please remove it.

Wrong output associated left instead of associated on right

$ pwd
test/prop-pack/problems/disjunction
$ cat disj-4.tptp
fof(a1, axiom, (p | q) | (r | p1)).
fof(goal, conjecture, (p | p1) | (r | q)).
$ metis --show proof disj-4.tptp
fof(a1, axiom, ((p | q) | r | p1)).
fof(goal, conjecture, ((p | p1) | r | q)).
....

Base on the above example, Metis is right associative. Then Athena is printing wrongly, it is printing left associative.

$ athena disj-4.tstp
$ cat disj-4.tptp
...
a₁ : Prop
a₁ = (((p ∨ q) ∨ r) ∨ p₁)
...
goal : Prop
goal = (((p ∨ p₁) ∨ r) ∨ q)

CC'ing @asr

Unsolved meta

Athena generates an Agda file with an unsolved meta (note the question mark in the last line):

$ cat bug.fof 
fof(t, conjecture, a => a).
$ athena bug.fof
$ cat bug.agda
------------------------------------------------------------------------------
-- Athena version 0.1.
-- TSTP file: bug.fof.
------------------------------------------------------------------------------

module bug where

------------------------------------------------------------------------------

open import ATP.Metis 1 public
open import Data.PropFormula 1 public

------------------------------------------------------------------------------

-- Variable.

a : PropFormula
a = Var (# 0)

-- Premise.

Γ : Ctxt
Γ =-- Conjecture.

t : PropFormula
t = (a ⇒ a)

------------------------------------------------------------------------------
-- Proof.
------------------------------------------------------------------------------

proof : Γ ⊢ t
proof =
  ⇒-elim
    atp-split
    ?

`make check` fails, Agda seems to no find library modules.

@asr some idea, what could happen? Do you have the same result?

$ make check
... 
===================================================================
================== Type-checking Agda files =======================
===================================================================
[!] AGDA_DIR=/Users/jonaprieto/athena/lib/.agda
-------------------------------------------------------------------
test/prop-pack/problems/basic/basic-01.agda
/Users/jonaprieto/athena/test/prop-pack/problems/basic/basic-01.agda:6,8-16
The name of the top level module does not match the file name. The
module basic-01 should be defined in one of the following files:
  /Users/jonaprieto/src/basic-01.agda
  /Users/jonaprieto/src/basic-01.lagda
  /Users/jonaprieto/.cabal/share/x86_64-osx-ghc-8.0.2/Agda-2.5.3/lib/prim/basic-01.agda
  /Users/jonaprieto/.cabal/share/x86_64-osx-ghc-8.0.2/Agda-2.5.3/lib/prim/basic-01.lagda
Command exited with non-zero status 1
user = 0.06, system = 0.07, elapsed = 0:00.20, mem=0, cpu=69%

Improve readability of proofs removing atp-negate

Taking into consideration for along time, atp-negate just negate the formula.

Better

proof₁ : Γ ⊢ subgoal₁
proof₁ =
  (RAA
    (atp-canonicalize
      (assume {Γ = Γ}
        ¬ (strip goal to subgoal₁))))

instead of

proof₁ : Γ ⊢ subgoal₁
proof₁ =
  (RAA
    (atp-canonicalize
      (assume {Γ = Γ}
        (atp-negate
          (strip goal to subgoal₁)))))

`make reconstruct` fails

I'm getting various errors of this type:

$ make reconstruct
...
===================================================================
============== Generating Agda files of TSTP proofs ===============
===================================================================
...
test/prop-pack/problems/conjunction/conj-5.tstp
athena: lexical error at line 2, column 18
CallStack (from HasCallStack):
  error, called at templates/wrappers.hs:451:61 in main:Athena.TSTP.Lexer

Bad construction for a proof.

The problem is:

$ cat test/prop-pack/problems/prop-metis/prop-20.tstp
---------------------------------------------------------------------------
SZS status Theorem for test/prop-pack/problems/prop-metis/prop-20.tptp

SZS output start CNFRefutation for test/prop-pack/problems/prop-metis/prop-20.tptp
fof(xor_assoc, conjecture,
    (~ (~ (p <=> q) <=> r) <=> ~ (p <=> ~ (q <=> r)))).

fof(subgoal_0, plain, ((~ (~ (p <=> q) <=> r) & p & q) => r),
    inference(strip, [], [xor_assoc])).

fof(subgoal_1, plain, ((~ (~ (p <=> q) <=> r) & p & r) => q),
    inference(strip, [], [xor_assoc])).

fof(subgoal_2, plain, ((~ (~ (p <=> q) <=> r) & ~ ~ (q <=> r)) => p),
    inference(strip, [], [xor_assoc])).

fof(subgoal_3, plain, ((~ (p <=> ~ (q <=> r)) & ~ (p <=> q)) => ~ r),
    inference(strip, [], [xor_assoc])).

fof(subgoal_4, plain, ((~ (p <=> ~ (q <=> r)) & ~ r & p) => ~ q),
    inference(strip, [], [xor_assoc])).

fof(subgoal_5, plain, ((~ (p <=> ~ (q <=> r)) & ~ r & ~ q) => p),
    inference(strip, [], [xor_assoc])).

and we reconstruct in Agda:

...
xorassoc : Prop
xorassoc = ((¬ ((¬ (p ⇔ q)) ⇔ r)) ⇔ (¬ (p ⇔ (¬ (q ⇔ r)))))

-- Subgoals.

subgoal₀ : Prop
subgoal₀ = (((¬ ((¬ (p ⇔ q)) ⇔ r)) ∧ (p ∧ q)) ⇒ r)

subgoal₁ : Prop
subgoal₁ = (((¬ ((¬ (p ⇔ q)) ⇔ r)) ∧ (p ∧ r)) ⇒ q)

subgoal₂ : Prop
subgoal₂ = (((¬ ((¬ (p ⇔ q)) ⇔ r)) ∧ (¬ (¬ (q ⇔ r)))) ⇒ p)

subgoal₃ : Prop
subgoal₃ = (((¬ (p ⇔ (¬ (q ⇔ r)))) ∧ (¬ (p ⇔ q))) ⇒ (¬ r))

subgoal₄ : Prop
subgoal₄ = (((¬ (p ⇔ (¬ (q ⇔ r)))) ∧ ((¬ r) ∧ p)) ⇒ (¬ q))

subgoal₅ : Prop
subgoal₅ = (((¬ (p ⇔ (¬ (q ⇔ r)))) ∧ ((¬ r) ∧ (¬ q))) ⇒ p)
...
proof : Γ ⊢ xorassoc
proof =
  ⇒-elim
    atp-split
    (∧-intro
      (∧-intro

        )
      (∧-intro

        (∧-intro

          )))

athena: Couldn't find a conjecture

@jonaprieto, can you reproduce the following error

$ make check
...
===================================================================
============== Generating Agda files of TSTP proofs ===============
===================================================================
...
test/prop-pack/problems/conjunction/conj-03.tstp
athena: Couldn't find a conjecture, or it was not unique
CallStack (from HasCallStack):
  error, called at src/Athena/Translation/Core.hs:58:10 in main:Athena.Translation.Core
test/prop-pack/problems/conjunction/conj-01.tstp

?

Error testing the example in the README

Following the instructions in the README I got the following error:

$ agda problem
...
tmp/athena/problem.agda:61,11-17
((φ : PropFormula) → _Γ_22 , φ ⊢ φ) !=< (_Γ_20 ⊢ _φ_21) of type Set
when checking that the expression assume has type _Γ_20 ⊢ _φ_21

Error running `make install-libraries`

$ make install-libraries
===================================================================
===== Downloading Agda Standard Library v2.5.2.20170816    ========
===================================================================
warning: Could not find remote branch v2.5.2.20170816  to clone.
fatal: Remote branch v2.5.2.20170816  not found in upstream origin

Note that v2.5.2.20170816 is not a branch but a tag.

You can use version 0.14 available in the Agda wiki (due to a problem with Agda mailing list server this version hasn't been announced yet).

Bad perfomance

Which is your output of running the following command:

$ time agda test/prop-pack/problems/prop-metis/prop-21.agda

In my case, after 4 hours of running

$ time agda -v20 test/prop-pack/problems/prop-metis/prop-21.agda

the process continued running (and htop didn't showed any significant change).

Parsing TSTP when identifiers contains underscore and are quoted

Consider the following example from the test folder.

$ cat test/prop-pack/problems/prop-metis/prop-13.tptp
...
fof('PROP_13', conjecture, ((p | (q & r)) <=> ((p | q) & (p | r)))).
fof(subgoal_0, plain, (((p | (q & r)) & ~ p) => q),
    inference(strip, [], ['PROP_13'])).
...

The problem comes with 'PROP_13'.

$ athena prop-13.tstp
athena: Maybe.fromJust: Nothing

CC'ing @asr

Build failure

I'm getting the following error (with GHC 8.2.1):

$ cabal install
...
dist/build/athena/athena-tmp/Athena/TSTP/Parser.hs:932:16: error:
    Ambiguous occurrence ‘map’
    It could refer to either ‘L.map’,
                             imported from ‘Data.List’ at dist/build/athena/athena-tmp/Athena/TSTP/Parser.hs:25:1-21
                             (and originally defined in ‘GHC.Base’)
                          or ‘S.map’,
                             imported from ‘Data.Set’ at dist/build/athena/athena-tmp/Athena/TSTP/Parser.hs:27:1-20
                             (and originally defined in ‘Data.Set.Internal’

Replace branches in the proof tree

The tree of the proof has some branches that appear in different locations in the tree.
We don't take into account about this fact and it could improve the timing of the type-checking.

Introducing axioms fails

One example:

$ athena --script test/prop-pack/problems/basic/basic-04.tstp
$ agda --library=test test/prop-pack/problems/basic/basic-04.agda
$ cat test/prop-pack/problems/basic/basic-04.agda
normalize₀₁ : Γ , ¬ subgoal₀ ⊢ p
normalize₀₁ = canonicalize-thm p a₁

Where it should be:

... 
normalize₀₁ : Γ , ¬ subgoal₀ ⊢ p
normalize₀₁ = canonicalize-thm p (weaken (¬ subgoal₀) (assume {Γ = ∅} a₁))
...

Not in scope: ⇒-to-¬∨

I'm getting the following error:

/tmp/athena/lib/agda-metis/src/ATP/Metis/Rules/Simplify.agda:89,37-44
Not in scope:
  ¬⊤-to-⊥
  at /tmp/athena/lib/agda-metis/src/ATP/Metis/Rules/Simplify.agda:89,37-44
when scope checking ¬⊤-to-⊥

it seems athena is using an old-dated version of agda-metis.

Strip must used as a function no as a theorem

In the recent version of Athena, to introduce the negation of a subgoal, we first negate the subgoal and later apply the strip theorem, atp-strip. Unfortunately, this procedure is wrong. We actually should follow the same way as Metis does, that is, strip the formula and later, negate the result.

This is how should look like:

...
proof₀ : Γ ⊢ subgoal₀
proof₀ =
  (RAA
    (atp-canonicalize
      (atp-canonicalize
        (assume {Γ = Γ}
            (atp-negate (strip subgoal₀))))))
...

but this is how we are doing nowadays:

...
proof₀ : Γ ⊢ subgoal₀
proof₀ =
  (RAA
    (atp-canonicalize
      (atp-canonicalize
        (atp-strip
          (assume {Γ = Γ}
            (atp-negate subgoal₀))))))

...

Bug in the Parser with TSTP outputs from OnlineATPs

Using online-atps to get the TSTP file, I am getting this

$ cd athena/test/prop-prack/problems/basic
$ online-atps --atp=metis basic-1.tptp > basic-1.tstp
$ athena basic-1.tstp
athena basic-2.tstp 
athena: Parse error, pos: [CommentToken "% SZS start RequiredInformation",CommentToken "% Congratulations - you have become a registered power user of SystemOnTPTP, at IP address 200.12.190.157.",CommentToken "% Please consider donating to the TPTP project - see www.tptp.org for details.",CommentToken "% When you donate this message will disappear.",CommentToken "% If you do not donate a random delay might be added to your processing time.",CommentToken "% SZS end RequiredInformation",CommentToken "% START OF SYSTEM OUTPUT",LowerWord "fof",LP,LowerWord "goal",Comma,LowerWord "conjecture",Comma,LP,Oper "~",DollarWord "$false",RP,RP,Dot,LowerWord "fof",LP,LowerWord "subgoal_0",Comma,LowerWord "plain",Comma]
CallStack (from HasCallStack):
  error, called at dist/build/athena/athena-tmp/Athena/TSTP/Parser.hs:3003:27 in main:Athena.TSTP.Parser

The problem are the comments.

Travis-Ci fails using GHC 8.2.1

Using this travis fails (something related with cabal-install)

  include:

    - env: TEST=MAIN GHC_VER=8.2.1 BUILD=CABAL CABAL_VER=1.24
      addons:
        apt:
          packages:
            - alex-3.1.7
            - cabal-install-1.24
            - ghc-8.2.1
            - happy-1.19.5
            - texlive-binaries
          sources:
            - hvr-ghc

Cabal version

In the README you say you tested Athena with GHC 8.4.3 (good!) and Cabal 1.24.0. Since GHC 8.4.3 requires cabal-install ≥ 2.2.0.0, please fix the Cabal version.

Type-checking error in test case impl-10.agda

$ make check-asr
...
test/prop-pack/problems/implication/impl-10.agda
/<some-path>/athena-master/test/prop-pack/problems/implication/impl-10.agda:48,6-66,48
¬ r != ⊥ of type PropFormula
when checking that the expression
simplify-thm ⊥
(conjunct-thm (¬ r)
 (canonicalize-thm (¬ r ∧ (p ∧ (¬ p ∨ q ∧ (¬ p ∨ (¬ q ∨ r)))))
  (assume {Γ = Γ} (¬ subgoal₀))))
(simplify-thm ⊥
 (simplify-thm q
  (conjunct-thm (¬ p ∨ q)
   (canonicalize-thm (¬ r ∧ (p ∧ (¬ p ∨ q ∧ (¬ p ∨ (¬ q ∨ r)))))
    (assume {Γ = Γ} (¬ subgoal₀))))
  (conjunct-thm p
   (canonicalize-thm (¬ r ∧ (p ∧ (¬ p ∨ q ∧ (¬ p ∨ (¬ q ∨ r)))))
    (assume {Γ = Γ} (¬ subgoal₀)))))
 (simplify-thm ⊥
  (conjunct-thm (¬ p ∨ (¬ q ∨ r))
   (canonicalize-thm (¬ r ∧ (p ∧ (¬ p ∨ q ∧ (¬ p ∨ (¬ q ∨ r)))))
    (assume {Γ = Γ} (¬ subgoal₀))))
  (conjunct-thm p
   (canonicalize-thm (¬ r ∧ (p ∧ (¬ p ∨ q ∧ (¬ p ∨ (¬ q ∨ r)))))
    (assume {Γ = Γ} (¬ subgoal₀))))))
has type
_Γ_13 , .Data.PropFormula.Theorems.Classical.¬ _φ_14 ⊢
.Data.PropFormula.Theorems.Classical.⊥
Makefile:517: recipe for target 'check-asr' failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.