def retractOnWorld(cogstate,worldname,proposition): """ INPUT: a triple (cognitive state, worldname, proposition) OUTPUT: array of worlds WHAT IT DOES: Definition 4 (i) """ result=[] world=getWorldByName(worldname,cogstate) for situation in sitgen(world): # s if Forceable(situation, proposition, cogstate): continue # s may not force P adding=False for basis in getAllBases(world,cogstate): # s' if not subset(situation,basis): continue # s is has to be a subset of s' Maximal=True for t in subsitgen(basis): if Forceable(situation, proposition, cogstate): continue # t may not force P if subset(situation,t): if situation != t: Maximal=False if not Maximal: continue # s should be a maximal subset of s' adding=True if adding: result.append(situation) return result
def getAllBases(world, cogstate): """ INPUT: a world and a cognitive state OUTPUT: an array of situations that are bases WHAT IT DOES: finds all the bases for a world in a cognitive state. """ bases = [] for situation in sitgen(world): if basisOfWorld(situation, world[meta][name], cogstate): bases.append(situation) return bases