Last active
February 6, 2025 10:57
-
-
Save viadean/fd1b426e9bf652ec6dc3e1aece7613dc to your computer and use it in GitHub Desktop.
Calculations with congruences | Patterns of Thought plus AI Reasoning
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def congruence_addition(a, a_prime, b, b_prime, m): | |
"""Proves congruence addition: a' + b' ≡ a + b (mod m)""" | |
if a_prime % m == a % m and b_prime % m == b % m: | |
result_prime = (a_prime + b_prime) % m | |
result = (a + b) % m | |
if result_prime == result: | |
print(f"{a_prime} + {b_prime} ≡ {a} + {b} (mod {m}) is TRUE") | |
return True | |
else: | |
print(f"{a_prime} + {b_prime} ≡ {a} + {b} (mod {m}) is FALSE") | |
return False | |
else: | |
print(f"Conditions not met: a' ≡ a (mod {m}) and b' ≡ b (mod {m}) must hold") | |
return False | |
def congruence_subtraction(a, a_prime, b, b_prime, m): | |
"""Proves congruence subtraction: a' - b' ≡ a - b (mod m)""" | |
if a_prime % m == a % m and b_prime % m == b % m: | |
result_prime = (a_prime - b_prime) % m | |
result = (a - b) % m | |
if result_prime == result: | |
print(f"{a_prime} - {b_prime} ≡ {a} - {b} (mod {m}) is TRUE") | |
return True | |
else: | |
print(f"{a_prime} - {b_prime} ≡ {a} - {b} (mod {m}) is FALSE") | |
return False | |
else: | |
print(f"Conditions not met: a' ≡ a (mod {m}) and b' ≡ b (mod {m}) must hold") | |
return False | |
def congruence_multiplication(a, a_prime, b, b_prime, m): | |
"""Proves congruence multiplication: a' * b' ≡ a * b (mod m)""" | |
if a_prime % m == a % m and b_prime % m == b % m: | |
result_prime = (a_prime * b_prime) % m | |
result = (a * b) % m | |
if result_prime == result: | |
print(f"{a_prime} * {b_prime} ≡ {a} * {b} (mod {m}) is TRUE") | |
return True | |
else: | |
print(f"{a_prime} * {b_prime} ≡ {a} * {b} (mod {m}) is FALSE") | |
return False | |
else: | |
print(f"Conditions not met: a' ≡ a (mod {m}) and b' ≡ b (mod {m}) must hold") | |
return False | |
# Example usage (using the same values from the previous response): | |
m = 5 | |
a = 7 | |
a_prime = 12 | |
b = 3 | |
b_prime = 8 | |
congruence_addition(a, a_prime, b, b_prime, m) # Output: 20 ≡ 10 (mod 5) is TRUE | |
congruence_subtraction(a, a_prime, b, b_prime, m) # Output: 4 ≡ 4 (mod 5) is TRUE | |
congruence_multiplication(a, a_prime, b, b_prime, m) # Output: 96 ≡ 21 (mod 5) is TRUE | |
# Example with values that don't satisfy the congruence: | |
a_prime = 13 # Now a' is NOT congruent to a (mod 5) | |
congruence_addition(a, a_prime, b, b_prime, m) # Output: Conditions not met... | |
# Another example showing negative results and how they are handled. | |
a = 2 | |
a_prime = 7 | |
b = 5 | |
b_prime = 10 | |
m= 7 | |
congruence_subtraction(a, a_prime, b, b_prime, m) # Output: -3 ≡ -3 (mod 7) is TRUE. (-3 mod 7 is 4) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment