Esempio n. 1
0
 def test_shared_nodes_in_different_branches(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('ay', 1.0), ('ax', 2.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 3)
     self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx')
     self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy')
     gen = mock_generator(('rz', 1.0))
     prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET,
                             gen)
     self.assertEqual(len(tree.nodes), 4)
     self.assertEqual(tree.nodes[3].closed, None)
     self.assertEqual(tree.nodes[2].closed, None)
     self.assertEqual(tree.nodes[1].closed, False)
     self.assertEqual(tree.nodes[0].closed, False)
     gen = mock_generator(('rz', 1.0))
     prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET,
                             gen)
     self.assertEqual(len(tree.nodes), 4)
     self.assertEqual(len(tree.nodes[3].parents), 2)
     self.assertEqual(tree.nodes[3].closed, None)
     self.assertEqual(tree.nodes[2].closed, False)
     self.assertEqual(tree.nodes[1].closed, False)
     self.assertEqual(tree.nodes[0].closed, False)
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(tree.nodes[3], 10, 0, 10, MOCK_PREMISE_SET,
                             gen)
     self.assertEqual(len(tree.nodes), 4)
     self.assertEqual(tree.nodes[3].closed, True)
     self.assertEqual(tree.nodes[2].closed, True)
     self.assertEqual(tree.nodes[1].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()
Esempio n. 2
0
 def test_apply_one_and_close(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('axy', 1.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 2)
     node = tree.nodes[1]
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 2)
     self.assertEqual(tree.nodes[1].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()
Esempio n. 3
0
 def test_apply_one_tactic(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('axy', 1.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 2)
     for i, node in enumerate(tree.nodes):
         self.assertEqual(node.index, i)
     node = tree.nodes[1]
     self.assertEqual(len(node.parents), 1)
     self.assertEqual(str(node.goal.conclusion), 'cxy')
     self.assertEqual(len(root.successful_attempts), 1)
     self.assertEqual(len(root.failed_attempts), 0)
     self.assertEqual(root.closed, False)
     self.assertEqual(node.closed, None)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()
Esempio n. 4
0
 def test_apply_two_in_a_row_and_close(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('axy', 1.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 2)
     node = tree.nodes[1]
     gen = mock_generator(('az', 1.0))
     prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 3)
     node = tree.nodes[2]
     self.assertEqual(str(node.goal.conclusion), 'cxyz')
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 3)
     self.assertEqual(tree.nodes[2].closed, True)
     self.assertEqual(tree.nodes[1].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()
Esempio n. 5
0
 def test_apply_two_different_and_close_one(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('ay', 1.0), ('ax', 2.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen)
     self.assertEqual(len(tree.nodes), 3)
     self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx')
     self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy')
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET,
                             gen)
     self.assertEqual(tree.nodes[2].closed, None)
     self.assertEqual(tree.nodes[1].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET,
                             gen)
     self.assertEqual(tree.nodes[2].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()
 def test_apply_two_in_parallel_and_close_both(self):
     tree = self.tree
     root = tree.nodes[0]
     gen = mock_generator(('bxy', 1.0))
     prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen,
                             PER_TACTIC_TIMEOUT_MS)
     self.assertEqual(len(tree.nodes), 3)
     self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx')
     self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy')
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET,
                             gen, PER_TACTIC_TIMEOUT_MS)
     self.assertEqual(tree.nodes[2].closed, None)
     self.assertEqual(tree.nodes[1].closed, True)
     self.assertEqual(tree.nodes[0].closed, False)
     gen = mock_generator(('c', 1.0))
     prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET,
                             gen, PER_TACTIC_TIMEOUT_MS)
     self.assertEqual(tree.nodes[2].closed, True)
     self.assertEqual(tree.nodes[0].closed, True)
     proof_search_tree.check_tree_consistency(tree)
     self.check_log_consistency()