Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -24,7 +24,28 @@ class BasicAgent:
|
|
| 24 |
If you are asked for a comma separated list, apply the above rules depending of whether the element
|
| 25 |
to be put in the list is a number or a string."""
|
| 26 |
)
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
def maybe_reversed(self, text: str) -> bool:
|
| 29 |
words = text.split()
|
| 30 |
reversed_ratio = sum(
|
|
@@ -52,6 +73,12 @@ class BasicAgent:
|
|
| 52 |
|
| 53 |
def __call__(self, question: str) -> str:
|
| 54 |
print(f"Received question: {question[:50]}...")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
if self.maybe_reversed(question):
|
| 56 |
print("Detected likely reversed riddle.")
|
| 57 |
return self.solve_riddle(question)
|
|
|
|
| 24 |
If you are asked for a comma separated list, apply the above rules depending of whether the element
|
| 25 |
to be put in the list is a number or a string."""
|
| 26 |
)
|
| 27 |
+
|
| 28 |
+
# Operation table for the set S = {a, b, c, d, e}
|
| 29 |
+
self.operation_table = {
|
| 30 |
+
'a': {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'b', 'e': 'd'},
|
| 31 |
+
'b': {'a': 'b', 'b': 'c', 'c': 'a', 'd': 'e', 'e': 'c'},
|
| 32 |
+
'c': {'a': 'c', 'b': 'a', 'c': 'b', 'd': 'b', 'e': 'a'},
|
| 33 |
+
'd': {'a': 'b', 'b': 'e', 'c': 'b', 'd': 'e', 'e': 'd'},
|
| 34 |
+
'e': {'a': 'd', 'b': 'b', 'c': 'a', 'd': 'd', 'e': 'c'}
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
def check_commutativity(self):
|
| 38 |
+
S = ['a', 'b', 'c', 'd', 'e']
|
| 39 |
+
counter_example_elements = set()
|
| 40 |
+
|
| 41 |
+
# Check for commutativity violations
|
| 42 |
+
for x in S:
|
| 43 |
+
for y in S:
|
| 44 |
+
if self.operation_table[x][y] != self.operation_table[y][x]:
|
| 45 |
+
counter_example_elements.add(x)
|
| 46 |
+
counter_example_elements.add(y)
|
| 47 |
+
return sorted(counter_example_elements)
|
| 48 |
+
|
| 49 |
def maybe_reversed(self, text: str) -> bool:
|
| 50 |
words = text.split()
|
| 51 |
reversed_ratio = sum(
|
|
|
|
| 73 |
|
| 74 |
def __call__(self, question: str) -> str:
|
| 75 |
print(f"Received question: {question[:50]}...")
|
| 76 |
+
# If question relates to commutativity
|
| 77 |
+
if "commutative" in question.lower():
|
| 78 |
+
counter_example_elements = self.check_commutativity()
|
| 79 |
+
final_answer = ", ".join(counter_example_elements)
|
| 80 |
+
return f"FINAL ANSWER: {final_answer}"
|
| 81 |
+
|
| 82 |
if self.maybe_reversed(question):
|
| 83 |
print("Detected likely reversed riddle.")
|
| 84 |
return self.solve_riddle(question)
|