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