Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class InitialOrdinal(object):
- def __init__(self, index=0, power=1):
- self.index = index
- def __eq__(self, other):
- if self.index == other.index:
- return True
- else:
- return False
- def __lt__(self, other):
- if self.index < other.index:
- return True
- else:
- return False
- def __gt__(self, other):
- if self.index > other.index:
- return True
- else:
- return False
- class Omega(object):
- def __init__(self, index=0, power=1, copies=1):
- self.index = index
- self.power = power
- self.copies = copies
- try:
- if InitialOrdinal(power.index) > InitialOrdinal(index):
- self.index = power.index
- self.power = 1
- else:
- pass
- except AttributeError:
- pass
- if copies > self:
- self.index = copies.index
- self.power = copies.power
- self.copies = 1
- try:
- if InitialOrdinal(self.index) == InitialOrdinal(copies.index):
- self.power = self.power + 1
- self.copies = 1
- except AttributeError:
- pass
- def __eq__(self, other):
- try:
- if all([self.index == other.index,
- self.power == other.power,
- self.copies == other.copies]):
- return True
- else:
- return False
- except AttributeError:
- return False
- def __lt__(self, other):
- try:
- if self.index < other.index:
- return True
- elif self.index == other.index and self.power < other.power:
- return True
- elif all([self.index == other.index,
- self.power == other.power,
- self.copies < other.copies]):
- return True
- else:
- return False
- except AttributeError:
- return False
- def __leq__(self, other):
- try:
- if self.index < other.index:
- return True
- elif self.index == other.index and self.power < other.power:
- return True
- elif all([self.index == other.index,
- self.power == other.power,
- self.copies < other.copies]):
- return True
- elif self == other:
- return True
- else:
- return False
- except AttributeError:
- return False
- def __gt__(self, other):
- try:
- if self.index > other.index:
- return True
- elif self.index == other.index and self.power > other.power:
- return True
- elif all([self.index == other.index,
- self.power == other.power,
- self.copies > other.copies]):
- return True
- else:
- return False
- except AttributeError:
- return True
- def __geq__(self, other):
- try:
- if self.index >= other.index:
- return True
- elif self.index == other.index and self.power >= other.power:
- return True
- elif all([self.index == other.index,
- self.power == other.power,
- self.copies >= other.copies]):
- return True
- elif self == other:
- return True
- else:
- return False
- except AttributeError:
- return True
- def __add__(self, other):
- if other == 0:
- return self
- elif all([InitialOrdinal(self.index) == InitialOrdinal(other.index),
- self.power == other.power]):
- return Omega(self.index, self.power, self.copies+other.copies)
- elif self < other:
- return other
- elif self == other:
- copies = self.copies * 2
- return Omega(self.index, self.power, copies)
- elif self > other:
- print("an ordinal object will be returned here")
- def __mul__(self, other):
- if self < other:
- return other
- elif self == other:
- return Omega(self.index, self.power + other.power)
- elif self > other:
- return Omega(self.index, self.power, self.copies * other)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement