Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 21st, 2012  |  syntax: None  |  size: 4.00 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package at.logic.integration_tests
  2.  
  3.  
  4. import at.logic.calculi.occurrences._
  5. import at.logic.language.lambda.types._
  6. import at.logic.language.lambda.symbols._
  7. //import at.logic.language.hol._
  8. import org.specs._
  9. import at.logic.calculi.slk._
  10. import at.logic.calculi.lk.base._
  11. import at.logic.calculi.lk.propositionalRules._
  12. import at.logic.language.hol.logicSymbols._
  13. import at.logic.language.schema._
  14.  
  15. import org.specs.runner._
  16. import org.specs.matcher.Matcher
  17.  
  18. import at.logic.transformations.ceres.struct.StructCreators
  19. import at.logic.transformations.ceres.clauseSets.StandardClauseSet
  20.  
  21. import at.logic.parsing.language.xml.XMLParser._
  22. import at.logic.parsing.readers.XMLReaders._
  23. import at.logic.algorithms.lk.simplification._
  24. import at.logic.algorithms.lk.statistics._
  25. import at.logic.algorithms.lk._
  26. import at.logic.parsing.calculus.xml.saveXML
  27.  
  28. import at.logic.calculi.lk._
  29. import at.logic.calculi.lk.base._
  30. import at.logic.algorithms.lk.simplification._
  31. import at.logic.algorithms.lk._
  32. import at.logic.transformations.skolemization.lksk.LKtoLKskc
  33.  
  34. //import java.util.zip.GZIPInputStream
  35. //import java.io.{FileReader, FileInputStream, InputStreamReader}
  36. //import java.io.File.separator
  37.  
  38.  
  39. class SchemaTest extends SpecificationWithJUnit {
  40.                                  implicit val factory = new PointerFOFactory
  41.   //phi_0
  42.   val A0 = IndexedPredicate(new ConstantStringSymbol("A"), IntZero())
  43.   val A1 = IndexedPredicate(new ConstantStringSymbol("A"), Succ(IntZero()))
  44.   val i = IntVar(new VariableStringSymbol("i"))
  45.   val Asi = IndexedPredicate(new ConstantStringSymbol("A"), Succ(i))
  46.  
  47.   val ax0 = Axiom(Sequent(A0::Nil, A0::Nil))
  48.   val ax1 = Axiom(Sequent(A1::Nil, A1::Nil))
  49.  
  50.   val neglrule = NegLeftRule(ax0, A0)
  51.  
  52.   val phi_0 = OrLeftRule(neglrule, ax1, Neg(A0), A1)
  53.  
  54.   ////////////////////////////////////////////////////////////////////////////////
  55.   val k = IntVar(new VariableStringSymbol("k"))
  56.  
  57.   val Ak = IndexedPredicate(new ConstantStringSymbol("A"), k)
  58.   val Ask = IndexedPredicate(new ConstantStringSymbol("A"), Succ(k))
  59.   val Assk = IndexedPredicate(new ConstantStringSymbol("A"), Succ(Succ(k)))
  60. //  val A = SchemaFactory.createVar( sym, ->(Tindex(), To()))
  61.   val Ai = IndexedPredicate(new ConstantStringSymbol("A"), i)
  62.  
  63.   // phi_k
  64.  
  65.   val negAiOrAsi = Or(Neg(Ai), Asi)
  66.  
  67.   val big = BigAnd(i, negAiOrAsi, IntZero(), k)
  68.  
  69.   val bigs = BigAnd(i, Ai, IntZero(), Succ(k))
  70.  
  71.   val psi_k : LKProof = SchemaProofLinkRule(Sequent(A0::big::Nil, bigs::Nil), "psi", k::Nil)
  72.  
  73.   val ax3 = Axiom(Sequent(Ask::Nil, Ask::Nil))
  74.  
  75.   val weaklrule = WeakeningLeftRule(ax3, BigAnd(i, Ai, IntZero(), k))
  76.  
  77.   val andlrule = AndLeft1Rule(weaklrule, BigAnd(i, Ai, IntZero(), k), Ask)
  78.  
  79.   val eq1rule = AndEquivalenceRule1(andlrule, BigAnd(i, Ai, IntZero(), k), BigAnd(i, Ai, IntZero(), Succ(k)))
  80.  
  81.   val cutrule = CutRule(psi_k, eq1rule, BigAnd(i, Ai, IntZero(), Succ(k)))
  82.  
  83.  
  84.   // psi_0
  85.  
  86.   val andrrule = AndRightRule(ax0, ax1, A0, A1)
  87.  
  88.   val cutrule1 = CutRule(phi_0, andrrule, A1)
  89.  
  90.   val contrlrule = ContractionLeftRule(cutrule1, A0)
  91.  
  92. println("\n\n OOOOOOOOOOOOOOOOOOOOOOOOOOOOOps \n\n")
  93.   // psi_{k+1}
  94.  
  95.  
  96.   val phi_k : LKProof = SchemaProofLinkRule(cutrule.root.getSequent, "phi", k)
  97.  
  98.   val ax4 = Axiom(Sequent(Assk::Nil, Assk::Nil))
  99.  
  100.  
  101.  
  102.   val neglrule1 = NegLeftRule(ax4, Ask)
  103.  
  104.   val orlrule = OrLeftRule(neglrule, ax4, Neg(Ask), Assk)
  105.  
  106.   val andrrule1 = AndRightRule(psi_k, orlrule, BigAnd(i, Ask, IntZero.asInstanceOf[IntegerTerm], Succ(k)), Assk)
  107.  
  108.   val equiv1rule = AndEquivalenceRule1(andrrule1, And(BigAnd(i, Ask, IntZero(), Succ(k)), Assk), BigAnd(i, Ask, IntZero(), Succ(Succ(k))))
  109.  
  110.   val cutrule2 = CutRule(phi_k, equiv1rule, Ask)
  111.  
  112.   val contrlrule1 = ContractionLeftRule(cutrule2, A0)
  113.  
  114.   val andlrule1 = AndLeft1Rule(contrlrule1, BigAnd(i, Or(Neg(Ai), Asi), IntZero(), k), Or(Neg(Ask), Assk))
  115.  
  116.   val equiv1rule1 = AndEquivalenceRule1(andlrule1, And(BigAnd(i, Or(Neg(Ai), Asi), IntZero(), Succ(k)), Or(Neg(Ask), Assk)), BigAnd(i, Or(Neg(Ai), Asi), IntZero(), Succ(k)))
  117.  
  118.  
  119.  
  120. }