Skip to content

Commit 74db240

Browse files
committed
jtabwb.JTabWb: Optimize getGoalIds()
1 parent 62a83af commit 74db240

File tree

3 files changed

+29
-23
lines changed

3 files changed

+29
-23
lines changed

java/src/main/java/cpl/g3c/interactive/Prover.java

+5
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ public Map<Integer, _Sequent> getGoals () {
112112
return this._goals;
113113
}
114114

115+
// Get the ids of all goals.
116+
public Set<Integer> getGoalIds () {
117+
return this._goals.keySet();
118+
}
119+
115120
// Gets the rules applicable to goal.
116121
public Collection<_AbstractRule> getApplicableRules (int id) {
117122
_Sequent goal = this.getGoal (id);
59 Bytes
Binary file not shown.

jtabwb/jtabwb.py

+24-23
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def goalIds(self):
185185
return self.getGoalIds()
186186

187187
def getGoalIds(self):
188-
return self._prover.getGoals().keys()
188+
return self._prover.getGoalIds()
189189

190190
def getGoal(self, id):
191191
return self._prover.getGoal(id)
@@ -234,9 +234,9 @@ def done(status):
234234
if timeout is not None and elapsed > timeout:
235235
return done(None)
236236
goals = self.goalIds
237-
if not goals:
237+
if len(goals) == 0:
238238
return done(True)
239-
id = min(self.goalIds)
239+
id = next(self.goalIds.iterator())
240240
app = self.getApplicableRules(id)
241241
if not app:
242242
return done(False)
@@ -250,23 +250,24 @@ def done(status):
250250
return done(None)
251251

252252

253-
# if __name__ == '__main__':
254-
# sc = JTabWb()
255-
# sc.load('=>A|~A')
256-
# print(sc.getGoals())
257-
# seq = sc.getGoal(0)
258-
# print(seq, seq.lhs, seq.rhs)
259-
# print(sc.getApplicableRules(0))
260-
# rule = sc.getApplicableRules(0)[0]
261-
# print(rule, rule.formula, rule.numPremises,
262-
# rule.isAxiom(), rule.isLeft(), rule.isRight())
263-
# sc.refine(0, rule)
264-
# print(sc.getGoal(1))
265-
# rule = sc.getApplicableRules(1)[0]
266-
# print(rule, rule.formula, rule.numPremises,
267-
# rule.isAxiom(), rule.isLeft(), rule.isRight())
268-
# sc.refine(1, rule)
269-
# print(sc.getGoal(2))
270-
# rule = sc.getApplicableRules(2)[0]
271-
# print(rule, rule.formula, rule.numPremises,
272-
# rule.isAxiom(), rule.isLeft(), rule.isRight())
253+
if __name__ == '__main__':
254+
sc = JTabWb()
255+
sc.load('=>A|~A')
256+
print(sc.getGoals())
257+
print(next(sc.goalIds.iterator()))
258+
seq = sc.getGoal(0)
259+
print(seq, seq.lhs, seq.rhs)
260+
print(sc.getApplicableRules(0))
261+
rule = sc.getApplicableRules(0)[0]
262+
print(rule, rule.formula, rule.numPremises,
263+
rule.isAxiom(), rule.isLeft(), rule.isRight())
264+
sc.refine(0, rule)
265+
print(sc.getGoal(1))
266+
rule = sc.getApplicableRules(1)[0]
267+
print(rule, rule.formula, rule.numPremises,
268+
rule.isAxiom(), rule.isLeft(), rule.isRight())
269+
sc.refine(1, rule)
270+
print(sc.getGoal(2))
271+
rule = sc.getApplicableRules(2)[0]
272+
print(rule, rule.formula, rule.numPremises,
273+
rule.isAxiom(), rule.isLeft(), rule.isRight())

0 commit comments

Comments
 (0)