f1[Path 1]:f1[Path 1]:
n2 0: Start of executionn2 0: Start of execution: Beginning Search
3 1: Searching: query3 1: Searching: query
n4 2: Searching: sibling(S1, S2)n4 2: Searching: sibling(Candidate Variable_0, Candidate Variable_1)
5 3: Searching: brother(william, S2)5 3: Searching: brother(Candidate Variable_0, Candidate Variable_1)
6 4: Found: brother(william, richard)6 4: Found: brother(william, richard)
n7 5: Searching: parent(richard, C2)n
8 6: Found: parent(richard, kimberley)
9 7: Searching: grandchild(cornelius, GP)
10 8: Searching: parent(GP, Z)
11 9: Found: parent(frank, cornelius)
12 10: Searching: parent(Z, cornelius)
13 11: Found: cornelius=cornelius
14 12: Searching: grandchild(C2, GP)
15 13: Searching: parent(GP, Z2)
16 14: Found: GP=frank, Z2=cornelius
17 15: Searching: parent(frank, C2)
18 16: Found: C2=kimberley
19 17: Searching: relation(C1, C2)
20 18: Searching: sibling(C1, Z3)
21 19: Searching: brother(C1, Z3)
22 20: Found: C1=william, Z3=richard
23 21Searching: sibling(william, richard)7 5Found: sibling(william, richard)
24 22: Found: william=william, richard=richard8 6: Searching: parent(william, Candidate Variable_2)
25 23: Found: relation(william, kimberley)9 7: Fail: parent(william, Candidate Variable_2) | {'Result': 'Search Failed'}
26 24: Found: query | {'Result': 'truth = True'}10 
11Looking for other paths: Redo: brother(Candidate Variable_0, Candidate Variable_1)
2712
2813
t29The search paths help confirm that Kimberley and Cornelius are indeed second cousins, as the code successfully establishes their relationship through shared parents (William and Richard) and grandparents (Frank).t14[Path 2]:
15 8: Found: brother(william, frank)
16 9: Found: sibling(william, frank)
17 10: Searching: parent(william, Candidate Variable_3)
18 11: Fail: parent(william, Candidate Variable_3) | {'Result': 'Search Failed'}
19 12: Fail: query | {'Result': 'Search Failed'}
20 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op