IDP4 vs the world

Context is useful

     vs
ASP

  • Clingo, DLV, Inca
  • Obvious KR connection
  • Well-founded semantics ~ Stable semantics
  • Ground-and-solve (e.g. plasp paper)

+

-

     vs
CP

  • MiniZinc, Oscar, Choco, Picat, Numberjack, KODKOD, SEM, Eclipse
  • Simple set-theoretic semantics ~ Model semantics
  • Finite domains -> ground-and-solve
  • Efficient propagators, lazy clause generation
  • Expressive constraints
  • Origins in Prolog!

+

-

+

+

     vs
SMT

  • Z3, CVC, Sem, Mace, Otto/Prover9, Vampire, Spass
  • Typed FO
  • No domain -> lazy grounding
    • E-matching / congruence closure
  • Goal is theorem proving, hard to build models
  • Inflexible proof system?

+

-

+

-

     vs
MIP

  • CPLEX, Gurobi, SCIP, GLPK, PPL
  • Ground-and-solve (... row/column generation)
  • Linear constraints
  • Optimization: lower and upper bounds
  • Linear relaxation / simplex algorithm
  • Pure efficiency focus

+

-

+

-

+

     vs
Local search

  • LocalSolver, WalkSAT, handcrafted, ...
  • Very fast for optimization
  • Incomplete for finite search spaces

+

-

     vs
Sat

  • MiniSat, Glucose, Lingeling, ...
  • Propositional
  • Resolution proof system

+

-

     vs
IntSat

  • IntSat
  • Ground
  • Cutting plane proof system

+

-

     vs
QBF

  • RareQS, GhostQ, QSTS, Quabs
  • (quantified) Propositional
  • Can solve Poly Hierarchy (PH)

+

-

     vs
B

  • ProB
  • Higher order!
  • Slow

+

-

     vs
HiLog

  • HiLog
  • "Higher order with first-order semantics"
  • Only first-order semantics :p

+

-

     vs
Prolog

  • XSB, B-Prolog, Sicstus, Yap, SWI, ...
  • No multi-model semantics
    • Non-monotone semantics
  • Recursive data structures
  • ...

+

     vs
Lambda calculus

  • Haskell, Lisp, Ocaml, ...
  • No multi-model semantics
  • Elegant syntax
  • Abstraction
  • Constructed types
  • ...

+

+

+

     vs
Imperative programming

  • Java, C++, C#, Rust, ...
  • No multi-model semantics
  • Abstraction
  • OO
  • ...

+

+

     vs
Query languages

  • SQL, ...
  • Efficient at querying

+

     vs
...

  • Business rules systems
  • Probabilistic systems
  • Causal systems (FO(C))
  • Abductive programming
  • ...

CPLEX

Clingo

MiniZinc

Z3

Haskell

XSB

QSTS

LocalSolver

ProB

IntSat

HiLog

C++

SQL

"Grab the best, leave the rest"

+ C-interface, external functions, relevance, symmetry, ...

* No Silver Bullets!

MiniSat

Not playing the "up the wall game"

     vs complexity theory

NP

P

PH(i)

Semi-undecidable
(Turing complete)

(finite) FO

(finite) definition with known opens

(finite) HO

infinite domain FO

MX inference:

Input language

Complexity class

(finite) MX

Querying

Nested (finite) MX

Theorem proving

Inference

NPO

(finite) FO with optimality term

(finite) Optimization

Fagin

IDP4 vs the world

By Jo Devriendt

IDP4 vs the world

  • 1,400