Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Feb 19 17:07
    fachammer synchronize #741
  • Feb 19 17:07

    fachammer on dls-algorithm-for-formula-equations

    improve criterion in documentat… (compare)

  • Feb 18 16:42
    fachammer synchronize #741
  • Feb 18 16:42

    fachammer on dls-algorithm-for-formula-equations

    improve solveFormulaEquation -… remove unnecessary code fix formatting and 4 more (compare)

  • Feb 12 20:20
    Jenkins nightly build failure
  • Feb 12 20:03
    Jenkins nightly build failure
  • Feb 06 13:56
    Travis gapt/gapt (dls-algorithm-for-formula-equations) passed (4032)
  • Feb 06 13:24
    fachammer synchronize #741
  • Feb 06 13:24

    fachammer on dls-algorithm-for-formula-equations

    put advanced simplify into solv… (compare)

  • Feb 05 19:35
    jvierling labeled #742
  • Feb 05 19:29
    jvierling labeled #744
  • Feb 05 19:26
    jvierling assigned #744
  • Feb 05 19:26
    jvierling opened #744
  • Feb 05 19:18
    jvierling commented #741
  • Feb 05 15:43
    jvierling commented #741
  • Feb 05 14:17
    shetzl commented #741
  • Feb 05 14:13
    fachammer commented #741
  • Feb 04 09:42
    Travis gapt/gapt#741 errored (4031)
  • Feb 04 09:41
    Travis gapt/gapt (dls-algorithm-for-formula-equations) errored (4030)
  • Feb 04 09:13
    fachammer synchronize #741
Andreas H. From
@andreasfrom
@jannikvierling Great, thank you!
Gabriel Ebner
@gebner
@andreasfrom Are you planning on doing any experiments on clogic89 between now and Thursday?
Gabriel Ebner
@gebner
@andreasfrom I'm running some experiments on clogic89 today. Please don't run anything else at the moment.
Gabriel Ebner
@gebner
@andreasfrom Also using clogic89 today.
Ermine516
@Ermine516
@jannikvierling Sorry I was delayed in message you, Vacation :)
I am back now
Is there a gapt meeting today?
Gabriel Ebner
@gebner
No, happy easter!
Ermine516
@Ermine516
If so I can bring it with me and we can discuss
:D, ah yes that is why I was on vacation, right.
Happy easter to you too
see you next week then
Gabriel Ebner
@gebner
Next week is labor day.
Ermine516
@Ermine516
ok, I should look at my calendar then
Andreas H. From
@andreasfrom
@gebner Sorry, didn't see your message. I only ran some stuff yesterday. If you need it today and tomorrow please let me know.
Gabriel Ebner
@gebner
Nah, everything's already done now. Also the deadline got extended by two weeks, so I'm no longer in such a hurry either.
Stefan Hetzl
@shetzl
@Ermine516 The next regular gapt meeting is scheduled for May 15.
Andreas H. From
@andreasfrom

I have a question about importing TIP problems. The file tip2015/list_return_2.smt2 looks like this:

; List monad laws
(declare-datatypes (a)
  ((list (nil) (cons (head a) (tail (list a))))))
(define-fun (par (a) (return ((x a)) (list a) (cons x (_ nil a)))))
(define-fun-rec
  (par (a)
    (++
       ((x (list a)) (y (list a))) (list a)
       (match x
         (case nil y)
         (case (cons z xs) (cons z (++ xs y)))))))
(define-fun-rec
  (par (a b)
    (>>=
       ((x (list a)) (y (=> a (list b)))) (list b)
       (match x
         (case nil (_ nil b))
         (case (cons z xs) (++ (@ y z) (>>= xs y)))))))
(prove
  (par (a)
    (forall ((xs (list a)))
      (= (>>= xs (lambda ((x a)) (return x))) xs))))

and after fixupAndLoad becomes:

∀x0 ∀x1 head(cons(x0, x1)) = x0,
∀x0 ∀x1 tail(cons(x0, x1)) = x1,
∀x return(x) = cons(x, nil),
lam2 = lam,
∀y ++(nil, y) = y,
∀y ∀z ∀xs ++(cons(z, xs), y) = cons(z, ++(xs, y)),
∀y >>=(nil, y) = nil,
∀y ∀z ∀xs >>=(cons(z, xs), y) = ++(apply1(y, z), >>=(xs, y)),
∀y0 ∀y1 nil != cons(y0, y1),
∀x apply1(lam, x) = return(x)
⊢
∀xs >>=(xs, lam2) = xs
So the apply1 must be introduced by the tip tool, but it does not show up in TipProblem.functions which I am using to generate reduction rules for testing.
Jannik Vierling
@jvierling
The symbol apply1 is stored in TipProblem.uninterpretedConsts, because it has no definition.
Andreas H. From
@andreasfrom
Why doesn't ∀x apply1(lam, x) = return(x) constitute a definition?
Jannik Vierling
@jvierling
Actually by definition I meant a definition in terms of define-fun or define-fun-rec or define-funs-rec. Actually the tip tool adds the definition that you gave as an assertion with a :definition keyword, but currently the tip importer does not inspect these keywords.
Andreas H. From
@andreasfrom
Oh right. Okay, thank you.
Jannik Vierling
@jvierling
Next week when I am back i'll try to spend some time to improve the tip importer.
Andreas H. From
@andreasfrom
It's not urgent for my purposes.
Andreas H. From
@andreasfrom

Here's an update:

mode
analytic_independent    43
analytic_sequential     75
spind                   34
treegrammar             16

All the problems solved by the analytic independent mode are affected by the tip importer thing mentioned above which makes my testing of conjectures less efficient or straight up breaks it. Three of them are solved if I just disable testing.

Spind is currently a little slower in total on the problems they have in common:

spind                118,666ms
analytic_independent 93,527ms
Gabriel Ebner
@gebner
@andreasfrom I'm going to use clogic89 over the weekend again.
Andreas H. From
@andreasfrom
@gebner roger.
Andreas H. From
@andreasfrom
@shetzl We talked about going to and from an expansion proof to reduce the proof, but I've got one here (for isaplanner/prop_57.smt2) which has around 2000 steps as an LK proof and going back from expansion to LK is taking more than 20 minutes. So that doesn't seem feasible(?)
Andreas H. From
@andreasfrom
Wait, I realised I could cleanStructuralRules it first and then it roundtrips quickly.
Stefan Hetzl
@shetzl
@andreasfrom Yes, cleanStructuralRules should always be cheap.
Jannik Vierling
@jvierling
@gebner How are our substitutions on term and types supposed to behave when one substitutes both term-level variables and type variables simultaneously? Should type variables be substituted before substituting the term variables?
@gebner I am asking this because I ran into a problem with the syntactic unification where the resulting substitution does not unfiy the expressions but I am not sure whether this is a bug in the unification algorithm or in the way the substitution is applied to the term.
@gebner Here is the example
object Example extends scala.App {

  implicit var ctx = Context()

  ctx += hoc"P{?a}: ?a > o"
  ctx += Ti
  ctx += hoc"c:i"

  val t1 = le"P(x:?a)"
  val t2 = le"P(c)"
  val Some( subst ) = syntacticMGU( t1, t2 )
  require( subst( t1 ) == subst( t2 ) )
}
Gabriel Ebner
@gebner
They are supposed to be applied simultaneously. For example you might have a substitution ?a -> list ?b, (x: ?a) -> (nil : list ?b).
Gabriel Ebner
@gebner
Yes, syntacticMGU is buggy here. There are at least two issues with type variables there. Do you want to look into it, or should I just push the fix?
Jannik Vierling
@jvierling
I will look into it.
Jannik Vierling
@jvierling
@gebner Why is hof"⊤" not considered to be an Atom (hof"⊤".asInstanceOf[Atom] fails) ?
Gabriel Ebner
@gebner
Because it's a logical connective.
Treating true/false as atoms can easily lead to bugs: e.g. gapt/gapt#309 If they are not atoms, it's clear that you need to treat them specially.
Jannik Vierling
@jvierling
Ok thanks.
Jannik Vierling
@jvierling
@gebner How does Escargot deal with and ? Does it avoid to generate these connectives? The problem is that at some point a ends up as a component by splitting but it is apparently not meant to be there.
Gabriel Ebner
@gebner
There should not be any ⊤ or ⊥ left after clausification.
But for first-order problems, clausification happens before the main loop is even started.
Jannik Vierling
@jvierling
I am running Escargot on a tip problem which uses formulas on term level, this introduces ⊤ after clausificiation.
Gabriel Ebner
@gebner
Goodbye completeness, I think. But yeah, I'd just add the clausification inference rule and see what happens.
Jannik Vierling
@jvierling
I'll try to integrate the clausification ( simplification of ⊤ and ⊥) with the saturation loop.