public void tellTemporalPhysicsSentences(int t){
  if (t == 0) {
    tell(newSymbol(LOCATION,0,1,1));
    tell(newSymbol(FACING_EAST,0));
    tell(newSymbol(HAVE_ARROW,0));
    tell(newSymbol(WUMPUS_ALIVE,0));
  }
  for (int x=1; x <= caveXDimension; x++) {
    for (int y=1; y <= caveYDimension; y++) {
      tell(new ComplexSentence(newSymbol(LOCATION,t,x,y),Connective.IMPLICATION,new ComplexSentence(newSymbol(PERCEPT_BREEZE,t),Connective.BICONDITIONAL,newSymbol(BREEZE,x,y))));
      tell(new ComplexSentence(newSymbol(LOCATION,t,x,y),Connective.IMPLICATION,new ComplexSentence(newSymbol(PERCEPT_STENCH,t),Connective.BICONDITIONAL,newSymbol(STENCH,x,y))));
    }
  }
  for (int x=1; x <= caveXDimension; x++) {
    for (int y=1; y <= caveYDimension; y++) {
      List<Sentence> locDisjuncts=new ArrayList<Sentence>();
      locDisjuncts.add(new ComplexSentence(newSymbol(LOCATION,t,x,y),Connective.AND,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(ACTION_FORWARD,t)),Connective.OR,newSymbol(PERCEPT_BUMP,t + 1))));
      if (x > 1) {
        locDisjuncts.add(new ComplexSentence(newSymbol(LOCATION,t,x - 1,y),Connective.AND,new ComplexSentence(newSymbol(FACING_EAST,t),Connective.AND,newSymbol(ACTION_FORWARD,t))));
      }
      if (y < caveYDimension) {
        locDisjuncts.add(new ComplexSentence(newSymbol(LOCATION,t,x,y + 1),Connective.AND,new ComplexSentence(newSymbol(FACING_SOUTH,t),Connective.AND,newSymbol(ACTION_FORWARD,t))));
      }
      if (x < caveXDimension) {
        locDisjuncts.add(new ComplexSentence(newSymbol(LOCATION,t,x + 1,y),Connective.AND,new ComplexSentence(newSymbol(FACING_WEST,t),Connective.AND,newSymbol(ACTION_FORWARD,t))));
      }
      if (y > 1) {
        locDisjuncts.add(new ComplexSentence(newSymbol(LOCATION,t,x,y - 1),Connective.AND,new ComplexSentence(newSymbol(FACING_NORTH,t),Connective.AND,newSymbol(ACTION_FORWARD,t))));
      }
      tell(new ComplexSentence(newSymbol(LOCATION,t + 1,x,y),Connective.BICONDITIONAL,Sentence.newDisjunction(locDisjuncts)));
      tell(new ComplexSentence(newSymbol(OK_TO_MOVE_INTO,t,x,y),Connective.BICONDITIONAL,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(PIT,x,y)),Connective.AND,new ComplexSentence(Connective.NOT,new ComplexSentence(newSymbol(WUMPUS,x,y),Connective.AND,newSymbol(WUMPUS_ALIVE,t))))));
    }
  }
  tell(new ComplexSentence(newSymbol(FACING_NORTH,t + 1),Connective.BICONDITIONAL,Sentence.newDisjunction(new ComplexSentence(newSymbol(FACING_WEST,t),Connective.AND,newSymbol(ACTION_TURN_RIGHT,t)),new ComplexSentence(newSymbol(FACING_EAST,t),Connective.AND,newSymbol(ACTION_TURN_LEFT,t)),new ComplexSentence(newSymbol(FACING_NORTH,t),Connective.AND,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_LEFT,t)),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_RIGHT,t)))))));
  tell(new ComplexSentence(newSymbol(FACING_SOUTH,t + 1),Connective.BICONDITIONAL,Sentence.newDisjunction(new ComplexSentence(newSymbol(FACING_WEST,t),Connective.AND,newSymbol(ACTION_TURN_LEFT,t)),new ComplexSentence(newSymbol(FACING_EAST,t),Connective.AND,newSymbol(ACTION_TURN_RIGHT,t)),new ComplexSentence(newSymbol(FACING_SOUTH,t),Connective.AND,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_LEFT,t)),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_RIGHT,t)))))));
  tell(new ComplexSentence(newSymbol(FACING_EAST,t + 1),Connective.BICONDITIONAL,Sentence.newDisjunction(new ComplexSentence(newSymbol(FACING_NORTH,t),Connective.AND,newSymbol(ACTION_TURN_RIGHT,t)),new ComplexSentence(newSymbol(FACING_SOUTH,t),Connective.AND,newSymbol(ACTION_TURN_LEFT,t)),new ComplexSentence(newSymbol(FACING_EAST,t),Connective.AND,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_LEFT,t)),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_RIGHT,t)))))));
  tell(new ComplexSentence(newSymbol(FACING_WEST,t + 1),Connective.BICONDITIONAL,Sentence.newDisjunction(new ComplexSentence(newSymbol(FACING_NORTH,t),Connective.AND,newSymbol(ACTION_TURN_LEFT,t)),new ComplexSentence(newSymbol(FACING_SOUTH,t),Connective.AND,newSymbol(ACTION_TURN_RIGHT,t)),new ComplexSentence(newSymbol(FACING_WEST,t),Connective.AND,new ComplexSentence(new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_LEFT,t)),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(ACTION_TURN_RIGHT,t)))))));
  tell(new ComplexSentence(newSymbol(HAVE_ARROW,t + 1),Connective.BICONDITIONAL,new ComplexSentence(newSymbol(HAVE_ARROW,t),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(ACTION_SHOOT,t)))));
  tell(new ComplexSentence(newSymbol(WUMPUS_ALIVE,t + 1),Connective.BICONDITIONAL,new ComplexSentence(newSymbol(WUMPUS_ALIVE,t),Connective.AND,new ComplexSentence(Connective.NOT,newSymbol(PERCEPT_SCREAM,t + 1)))));
}

public void tellTemporalPhysicsSentences ( int t ) { if ( t == 0 ) { tell ( newSymbol ( LOCATION , 0 , 1 , 1 ) ) ; tell ( newSymbol ( FACING_EAST , 0 ) ) ; tell ( newSymbol ( HAVE_ARROW , 0 ) ) ; tell ( newSymbol ( WUMPUS_ALIVE , 0 ) ) ; } for ( int x = 1 ; x <= caveXDimension ; x ++ ) { for ( int y = 1 ; y <= caveYDimension ; y ++ ) { tell ( new ComplexSentence ( newSymbol ( LOCATION , t , x , y ) , Connective . IMPLICATION , new ComplexSentence ( newSymbol ( PERCEPT_BREEZE , t ) , Connective . BICONDITIONAL , newSymbol ( BREEZE , x , y ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( LOCATION , t , x , y ) , Connective . IMPLICATION , new ComplexSentence ( newSymbol ( PERCEPT_STENCH , t ) , Connective . BICONDITIONAL , newSymbol ( STENCH , x , y ) ) ) ) ; } } for ( int x = 1 ; x <= caveXDimension ; x ++ ) { for ( int y = 1 ; y <= caveYDimension ; y ++ ) { List < Sentence > locDisjuncts = new ArrayList < Sentence > ( ) ; locDisjuncts . add ( new ComplexSentence ( newSymbol ( LOCATION , t , x , y ) , Connective . AND , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_FORWARD , t ) ) , Connective . OR , newSymbol ( PERCEPT_BUMP , t + 1 ) ) ) ) ; if ( x > 1 ) { locDisjuncts . add ( new ComplexSentence ( newSymbol ( LOCATION , t , x - 1 , y ) , Connective . AND , new ComplexSentence ( newSymbol ( FACING_EAST , t ) , Connective . AND , newSymbol ( ACTION_FORWARD , t ) ) ) ) ; } if ( y < caveYDimension ) { locDisjuncts . add ( new ComplexSentence ( newSymbol ( LOCATION , t , x , y + 1 ) , Connective . AND , new ComplexSentence ( newSymbol ( FACING_SOUTH , t ) , Connective . AND , newSymbol ( ACTION_FORWARD , t ) ) ) ) ; } if ( x < caveXDimension ) { locDisjuncts . add ( new ComplexSentence ( newSymbol ( LOCATION , t , x + 1 , y ) , Connective . AND , new ComplexSentence ( newSymbol ( FACING_WEST , t ) , Connective . AND , newSymbol ( ACTION_FORWARD , t ) ) ) ) ; } if ( y > 1 ) { locDisjuncts . add ( new ComplexSentence ( newSymbol ( LOCATION , t , x , y - 1 ) , Connective . AND , new ComplexSentence ( newSymbol ( FACING_NORTH , t ) , Connective . AND , newSymbol ( ACTION_FORWARD , t ) ) ) ) ; } tell ( new ComplexSentence ( newSymbol ( LOCATION , t + 1 , x , y ) , Connective . BICONDITIONAL , Sentence . newDisjunction ( locDisjuncts ) ) ) ; tell ( new ComplexSentence ( newSymbol ( OK_TO_MOVE_INTO , t , x , y ) , Connective . BICONDITIONAL , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( PIT , x , y ) ) , Connective . AND , new ComplexSentence ( Connective . NOT , new ComplexSentence ( newSymbol ( WUMPUS , x , y ) , Connective . AND , newSymbol ( WUMPUS_ALIVE , t ) ) ) ) ) ) ; } } tell ( new ComplexSentence ( newSymbol ( FACING_NORTH , t + 1 ) , Connective . BICONDITIONAL , Sentence . newDisjunction ( new ComplexSentence ( newSymbol ( FACING_WEST , t ) , Connective . AND , newSymbol ( ACTION_TURN_RIGHT , t ) ) , new ComplexSentence ( newSymbol ( FACING_EAST , t ) , Connective . AND , newSymbol ( ACTION_TURN_LEFT , t ) ) , new ComplexSentence ( newSymbol ( FACING_NORTH , t ) , Connective . AND , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_LEFT , t ) ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_RIGHT , t ) ) ) ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( FACING_SOUTH , t + 1 ) , Connective . BICONDITIONAL , Sentence . newDisjunction ( new ComplexSentence ( newSymbol ( FACING_WEST , t ) , Connective . AND , newSymbol ( ACTION_TURN_LEFT , t ) ) , new ComplexSentence ( newSymbol ( FACING_EAST , t ) , Connective . AND , newSymbol ( ACTION_TURN_RIGHT , t ) ) , new ComplexSentence ( newSymbol ( FACING_SOUTH , t ) , Connective . AND , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_LEFT , t ) ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_RIGHT , t ) ) ) ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( FACING_EAST , t + 1 ) , Connective . BICONDITIONAL , Sentence . newDisjunction ( new ComplexSentence ( newSymbol ( FACING_NORTH , t ) , Connective . AND , newSymbol ( ACTION_TURN_RIGHT , t ) ) , new ComplexSentence ( newSymbol ( FACING_SOUTH , t ) , Connective . AND , newSymbol ( ACTION_TURN_LEFT , t ) ) , new ComplexSentence ( newSymbol ( FACING_EAST , t ) , Connective . AND , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_LEFT , t ) ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_RIGHT , t ) ) ) ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( FACING_WEST , t + 1 ) , Connective . BICONDITIONAL , Sentence . newDisjunction ( new ComplexSentence ( newSymbol ( FACING_NORTH , t ) , Connective . AND , newSymbol ( ACTION_TURN_LEFT , t ) ) , new ComplexSentence ( newSymbol ( FACING_SOUTH , t ) , Connective . AND , newSymbol ( ACTION_TURN_RIGHT , t ) ) , new ComplexSentence ( newSymbol ( FACING_WEST , t ) , Connective . AND , new ComplexSentence ( new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_LEFT , t ) ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_TURN_RIGHT , t ) ) ) ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( HAVE_ARROW , t + 1 ) , Connective . BICONDITIONAL , new ComplexSentence ( newSymbol ( HAVE_ARROW , t ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( ACTION_SHOOT , t ) ) ) ) ) ; tell ( new ComplexSentence ( newSymbol ( WUMPUS_ALIVE , t + 1 ) , Connective . BICONDITIONAL , new ComplexSentence ( newSymbol ( WUMPUS_ALIVE , t ) , Connective . AND , new ComplexSentence ( Connective . NOT , newSymbol ( PERCEPT_SCREAM , t + 1 ) ) ) ) ) ; }
tell the kb the temporal " physics " sentences for time t
