diff --git a/.pypirc b/.pypirc new file mode 100644 index 00000000..3da8978b --- /dev/null +++ b/.pypirc @@ -0,0 +1,12 @@ +[distutils] +index-servers = + pypi + testpypi + +[pypi] +username = __token__ +repository = https://upload.pypi.org/legacy/ + +[testpypi] +username = __token__ +repository = https://test.pypi.org/legacy/ \ No newline at end of file diff --git a/build/lib/__init__.py b/build/lib/__init__.py new file mode 100644 index 00000000..b02ceb4c --- /dev/null +++ b/build/lib/__init__.py @@ -0,0 +1,24 @@ +"""Punctilious: punctilious/__init__.py + +""" + +from repm import monospace, prnt, serif_bold +from core import Article, AxiomDeclaration, AxiomInclusion, ComposableBlockSequence, classes, \ + configuration, consistency_values, DashedName, create_universe_of_discourse, \ + DefinitionInclusion, Encoding, encodings, FailedVerificationException, Formula, FreeVariable, \ + Header, Hypothesis, InconsistencyWarning, interpret_formula, interpret_statement_formula, \ + is_in_class, InferredStatement, NoteInclusion, Paragraph, ParagraphHeader, paragraph_headers, \ + prioritize_value, QuasiQuotation, Relation, rep_two_columns_proof_item, ScriptNormal, \ + SansSerifBold, SansSerifNormal, SerifBoldItalic, SerifItalic, SerifNormal, SimpleObjct, \ + Statement, Subscript, subscriptify, paragraph_headers, ComposableText, NameSet, SymbolicObject, \ + TextStyle, text_styles, TheoreticalObject, TheoryElaborationSequence, TheoryPackage, \ + paragraph_headers, UniverseOfDiscourse + +# from foundation_system_1 import foundation_system_1, ft, u + +from locale_en_us import locale_en_us + +# Configure the default locale +configuration.locale = locale_en_us + +print('punctilious: package initialized. welcome!') diff --git a/build/lib/core.py b/build/lib/core.py new file mode 100644 index 00000000..52435988 --- /dev/null +++ b/build/lib/core.py @@ -0,0 +1,8750 @@ +from __future__ import annotations +import collections.abc +import textwrap +import typing +import warnings +import repm +import contextlib +import abc +import collections +import pyvis +import unicode_utilities +from plaintext import Plaintext +from unicode_utilities import Unicode2 + + +def prioritize_value(*args): + """Return the first non-None object in ⌜*args⌝.""" + for a in args: + if a is not None: + return a + return None + + +class PunctiliousException(Exception): + def __init__(self, msg, **kwargs): + pass + + +def rep_composition(composition: collections.abc.Generator[Composable, Composable, bool] = None, + encoding: (None, bool) = None, cap: (None, bool) = None, **kwargs) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + if composition is None: + return '' + else: + representation = '' + for item in composition: + if item is None: + return '' + elif isinstance(item, typing.Generator): + representation = representation + rep_composition(composition=item, + encoding=encoding, cap=cap, **kwargs) + cap = False + elif isinstance(item, Composable): + representation = representation + item.rep(encoding=encoding, cap=cap) + cap = False + elif isinstance(item, str): + representation = representation + item + cap = False + elif isinstance(item, int): + representation = representation + str(item) + cap = False + elif isinstance(item, Formula): + representation = representation + item.rep_formula(encoding=encoding) + cap = False + else: + raise TypeError(f'Type ⌜{str(type(item))}⌝ is not supported in compositions.') + return representation + + +class Encoding: + """A supported output text format.""" + + def __init__(self, name: str): + self._name = name + + def __eq__(self, other): + return hash(self) == hash(other) + + def __hash__(self): + return hash((Encoding, self._name)) + + def __repr__(self): + return self._name + + def __str__(self): + return self._name + + +class Encodings: + def __init__(self): + self.latex = Encoding('latex') + self.plaintext = Encoding('plaintext') + self.unicode = Encoding('unicode') + + +encodings = Encodings() + + +class Composable(abc.ABC): + """An object that is Composable is an object that may participate in a representation + composition and may be represented.""" + + def __str__(self): + return self.rep(encoding=encodings.plaintext) + + @abc.abstractmethod + def compose(self) -> collections.abc.Generator[Composable, None, None]: + raise NotImplementedError('This method is not implemented.') + + def rep(self, encoding: (None, Encoding) = None, **args) -> str: + composition = '' + for item in self.compose(): + composition += item.rep(encoding=encoding, **args) + return composition + + +class ComposableText(Composable): + """A text is a string of text that: + - is of a supported text_style, + - may support one or several encodings.""" + + def __init__(self, s: (None, str) = None, plaintext: (None, str, Plaintext) = None, + unicode: (None, str, Unicode2) = None, latex: (None, str) = None): + """ + + :param s: A default undetermined string. Leave it to the constructor to infer its + encoding (plaintext, unicode, ...). + :param plaintext: + :param unicode: + :param latex: + """ + self._plaintext = Plaintext(prioritize_value(plaintext, s, unicode)) + self._unicode = Unicode2(prioritize_value(unicode, s)) + self._latex = latex + + def __eq__(self, other: (None, object, ComposableText)) -> bool: + """Two instances of TextStyle are equal if any of their formatted representation are + equal and not None.""" + return type(self) is type( + other) and self.plaintext == other.plaintext and self.unicode == other.unicode and self.latex == other.latex + + def __hash__(self): + """Two styled-texts are considered distinct if either their plaintext content or their + style are distinct.""" + return hash((ComposableText, self._plaintext, self._unicode, self._latex)) + + def __repr__(self): + return f'⌜{self.rep(encoding=encodings.plaintext)}⌝' + + def compose(self) -> collections.abc.Generator[Composable, None, None]: + yield self + + @property + def latex(self) -> (None, str): + return self._latex + + @property + def plaintext(self) -> (None, Plaintext): + return self._plaintext + + def rep(self, encoding: Encoding = encodings.plaintext, cap: bool = False): + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + match encoding: + case encodings.plaintext: + return self.rep_as_plaintext(cap=cap) + case encodings.latex: + return self.rep_as_latexmath(cap=cap) + case encodings.unicode: + return self.rep_as_unicode(cap=cap) + case _: + return self.rep_as_plaintext(cap=cap) + + def rep_as_latexmath(self, cap: bool = False): + content = self._plaintext if self._latex is None else self._latex + content = content.capitalize() if cap else content + return content + + def rep_as_plaintext(self, cap: bool = False): + content = self._plaintext + content = content.capitalize() if cap else content + return content + + def rep_as_unicode(self, cap: bool = False): + content = self._plaintext if self._unicode is None else self._unicode + content = content.capitalize() if cap else content + return content + + @property + def unicode(self) -> (None, Unicode2): + return self._unicode + + +def yield_composition(*content, cap: (None, bool) = None, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """A utility function that simplifies yielding compositions. + + Only yield elements that are not None. + Yield ⌜pre⌝ if there is at least one non-None element in ⌜*content⌝. + Yield all elements of ⌜*content⌝. + Yield ⌜post⌝ if there is at least one non-None element in ⌜*content⌝. + """ + if content is not None and any(element is not None for element in content): + yield from yield_composition(pre) + for element in content: + if isinstance(element, str): + yield from ComposableText(s=element).compose() + elif isinstance(element, StyledText): + yield from element.compose(cap=cap) + elif isinstance(element, Composable): + yield from element.compose() + elif isinstance(element, collections.abc.Generator): + yield from element + else: + raise TypeError(f'Type ⌜{str(type(element))}⌝ is not supported.') + yield from yield_composition(post) + return True + else: + return False + + +def prioritize_composition(*content, cap: (None, bool) = None, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Yield the composition of the first non-None element of *content. + """ + if content is None: + return False + first_not_none = next((element for element in content if element is not None), None) + something = yield from yield_composition(first_not_none, cap=cap, pre=pre, post=post) + return something + + +class TextStyle: + """A supported text style.""" + + def __init__(self, name: str, start_tag: ComposableText, end_tag: ComposableText, + unicode_map: dict = None, unicode_table_index: int = None): + # TODO: Replace unicode_table_index with new parameter unicode_map, + # this will allow to dedicate maps and better manage incomplete character sets, + # such as subscript. + self._name = name + self._unicode_table_index = unicode_table_index + self._unicode_map = unicode_map + self._start_tag = start_tag + self._end_tag = end_tag + + def __eq__(self, other): + return type(other) is type(self) and hash(self) == hash(other) + + def __hash__(self): + return hash((TextStyle, self._name)) + + def __repr__(self): + return self._name + + def __str__(self): + return self._name + + @property + def end_tag(self): + return self._end_tag + + @property + def name(self): + return self._name + + @property + def start_tag(self): + return self._start_tag + + @property + def unicode_map(self): + return self._unicode_map + + +class TextStyles: + """Expose a catalog of supported text-styles.""" + + def __init__(self): + self._no_style = TextStyle(name='no-style', + unicode_table_index=unicode_utilities.unicode_sans_serif_normal_index, + start_tag=ComposableText(plaintext=''), end_tag=ComposableText(plaintext='')) + self.double_struck = TextStyle(name='double-struck', + unicode_table_index=unicode_utilities.unicode_double_struck_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathbb{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.monospace = TextStyle(name='fraktur-normal', + unicode_table_index=unicode_utilities.unicode_fraktur_normal_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathfrak{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.monospace = TextStyle(name='monospace', + unicode_table_index=unicode_utilities.unicode_monospace_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathtt{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.sans_serif_bold = TextStyle(name='sans-serif-bold', + unicode_table_index=unicode_utilities.unicode_sans_serif_bold_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\boldsymbol\\mathsf{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}}')) + self.sans_serif_italic = TextStyle(name='sans-serif-italic', + unicode_table_index=unicode_utilities.unicode_sans_serif_italic_index, + start_tag=ComposableText(plaintext='', unicode='', + latex='\\text{\\sffamily{\\itshape{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}}}')) + self.sans_serif_normal = TextStyle(name='sans-serif-normal', + unicode_table_index=unicode_utilities.unicode_sans_serif_normal_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathsf{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.script_normal = TextStyle(name='script-normal', + unicode_table_index=unicode_utilities.unicode_script_normal_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathcal{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.serif_bold = TextStyle(name='serif-bold', + unicode_table_index=unicode_utilities.unicode_serif_bold_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathbf{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.serif_bold_italic = TextStyle(name='serif-bold-italic', + unicode_table_index=unicode_utilities.unicode_serif_bold_italic_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathbold{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.serif_italic = TextStyle(name='serif-italic', + unicode_table_index=unicode_utilities.unicode_serif_italic_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathit{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.serif_normal = TextStyle(name='serif-normal', + unicode_table_index=unicode_utilities.unicode_serif_normal_index, + start_tag=ComposableText(plaintext='', unicode='', latex='\\mathnormal{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + self.subscript = TextStyle(name='subscript', + unicode_map=unicode_utilities.unicode_subscript_dictionary, + start_tag=ComposableText(plaintext='_', unicode='', latex='_{'), + end_tag=ComposableText(plaintext='', unicode='', latex='}')) + + @property + def no_style(self): + """The ⌜no_style⌝ text-style is a neutral style. + Rendering defaults to sans-serif-normal. + It is expected to be overriden by passing the text_style parameter to the rendering + method.""" + return self._no_style + + +text_styles = TextStyles() + + +class TextDict: + """Predefined texts are exposed in the TextDict. This should facilite internatiolization at a + later stage. + TODO: Merge this into the Locale. + """ + + def __init__(self): + self.comma = ComposableText(plaintext=', ') + self.empty_string = ComposableText(plaintext='') + self.in2 = None + self.let = None + self.be = None + self.be_a = None + self.be_an = None + self.colon = ComposableText(plaintext=':') + self.period = ComposableText(plaintext='.') + self.space = ComposableText(plaintext=' ') + self.close_quasi_quote = ComposableText(plaintext='"', unicode='⌝', + latex='\\right\\ulcorner') + self.open_quasi_quote = ComposableText(plaintext='"', unicode='⌜', latex='\\left\\ulcorner') + self.close_parenthesis = ComposableText(plaintext=')', latex='\\right)') + self.open_parenthesis = ComposableText(plaintext='(', latex='\\left(') + self.formula_parameter_separator = ComposableText(plaintext=', ') + self.the = None + + +text_dict = TextDict() + + +class ComposableBlock(Composable, abc.ABC): + """A CompositionBlock is a composition that has a start_tag and an end_tag.""" + + def __init__(self, start_tag: (None, ComposableText) = None, + end_tag: (None, ComposableText) = None): + self._start_tag = start_tag + self._end_tag = end_tag + + def __repr__(self): + return self.rep(encoding=encodings.plaintext) + + def __str__(self): + return self.rep(encoding=encodings.plaintext) + + @abc.abstractmethod + def compose(self) -> collections.abc.Generator[Composable, None, None]: + raise NotImplementedError('This method is not implemented.') + + @property + def end_tag(self): + return self._end_tag + + def rep(self, encoding: (None, Encoding) = None, wrap: (None, bool) = None, **args) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + # Implement parameter wrap + # wrap = get_config(wrap, configuration.wrap, + # False) + return ''.join(item.rep(encoding=encoding) for item in self.outer_composition) + + @property + def start_tag(self): + return self._start_tag + + +empty_string = ComposableText(plaintext='') + + +def composify(item: (None, str, int, ComposableText, ComposableBlock)) -> Composable: + """Force conversion of item to Composable type.""" + if item is None: + return ComposableText(s='') + elif isinstance(item, str): + return ComposableText(s=item) + elif isinstance(item, int): + return ComposableText(s=str(item)) + elif isinstance(item, Composable): + return item + else: + raise TypeError('item is of unsupported type.') + + +class ComposableBlockLeaf(ComposableBlock): + """An instance of CompositionLeafBlock is a composition string that start with a + start-element, that contains a single leaf-element, and that ends with an end-element. + """ + + def __init__(self, content: (None, ComposableText) = None, + start_tag: (None, ComposableText) = None, end_tag: (None, ComposableText) = None): + self._content = composify(content) + super().__init__(start_tag=start_tag, end_tag=end_tag) + + def compose(self) -> collections.abc.Generator[Composable, None, None]: + if self._start_tag is not None: + yield self._start_tag + yield self._content + if self._end_tag is not None: + yield self._end_tag + + @property + def content(self) -> Composable: + return self._content + + @content.setter + def content(self, content: (None, Composable)) -> None: + self._content = content + + +class StyledText(ComposableBlockLeaf): + """Text supporting multiple encodings (plaintext, Unicode, LaTeX math) and styles.""" + + def __init__(self, s: (None, str) = None, text_style: (None, TextStyle) = None, + plaintext: (None, str, Plaintext) = None, unicode: (None, str, Unicode2) = None, + latex: (None, str) = None, cap: (None, bool) = None): + """ + + :param s: A string. Leave it to the constructor to interpret if it is plaintext or unicode. + :param plaintext: + :param unicode: + :param latex: + :param text_style: + """ + self._text_style = prioritize_value(text_style, text_styles.sans_serif_normal) + self._cap = prioritize_value(cap, False) + if self._cap: + # Forces capitalization of the first letter during construction. + s = s if s is None else s.capitalize() + plaintext = plaintext if plaintext is None else plaintext.capitalize() + unicode = unicode if unicode is None else unicode.capitalize() + latex = latex if latex is None else latex.capitalize() + content = ComposableText(s=s, plaintext=plaintext, unicode=unicode, latex=latex) + start_tag = self._text_style.start_tag + end_tag = self._text_style.end_tag + super().__init__(content=content, start_tag=start_tag, end_tag=end_tag) + self._text_content = content + + def __eq__(self, other: (None, object, ComposableText)) -> bool: + """Two instances of TextStyle are equal if any of their styled representation are equal + and not None.""" + return type(self) is type( + other) and self._content == other.content and self._text_style is other.text_style + + def __hash__(self): + """Two styled-texts are considered distinct if either their plaintext content or their + style are distinct.""" + return hash((ComposableText, self._content, self._text_style)) + + def __repr__(self): + return f'⌜{self.rep(encoding=encodings.plaintext)}⌝ [{self._text_style}]' + + def compose(self, text_style: (None, TextStyle) = None, cap: (None, bool) = None, **kwargs) -> \ + collections.abc.Generator[Composable, Composable, bool]: + """ + + :param text_style: Override the text_style property of the StyledText instance. + :param cap: Override the cap property of the StyledText instance. + :param kwargs: + :return: A composition of the StyledText instance. + """ + if (cap is not None and cap != self._cap) or ( + text_style is not None and self._text_style is not text_style): + # Return a close of ⌜self⌝ with the desired properties. + # TODO: StyledText composition: possible bug in LaTeX rendering here. + latex = None if self.latex is None else (self.latex.capitalize() if cap else self.latex) + plaintext = None if self.plaintext is None else ( + self.plaintext.capitalize() if cap else self.plaintext) + unicode = None if self.unicode is None else ( + self.unicode.capitalize() if cap else self.unicode) + yield StyledText(latex=latex, plaintext=plaintext, unicode=unicode, + text_style=self.text_style) + return True + else: + yield self + return True + + @property + def latex(self) -> (None, str): + return self._text_content.latex + + @property + def plaintext(self) -> (None, Plaintext): + return self._text_content.plaintext + + @property + def unicode(self) -> (None, str): + return self._text_content.unicode + + def rep(self, encoding: Encoding = encodings.plaintext, cap: bool = False, **kwargs): + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + match encoding: + case encodings.plaintext: + return self.rep_as_plaintext(cap=cap) + case encodings.latex: + return self.rep_as_latex(cap=cap) + case encodings.unicode: + return self.rep_as_unicode(cap=cap) + case _: + return self.rep_as_plaintext(cap=cap) + + def rep_as_latex(self, cap: bool = False): + start_tag = self.start_tag.rep(encoding=encodings.latex) + content = self._text_content.plaintext if self._text_content.latex is None else self._text_content.latex + content = content.capitalize() if cap else content + end_tag = self.end_tag.rep(encoding=encodings.latex) + return start_tag + content + end_tag + + def rep_as_plaintext(self, cap: bool = False): + content = self._text_content.plaintext + content = content.capitalize() if cap else content + return content + + def rep_as_unicode(self, cap: bool = False): + content = self._text_content.plaintext if self._text_content.unicode is None else self._text_content.unicode + content = content.capitalize() if cap else content + return unicode_utilities.unicode_format(s=content, + index=self.text_style._unicode_table_index, mapping=self.text_style.unicode_map) + + @property + def text_content(self) -> ComposableText: + return self._text_content + + @property + def text_style(self) -> TextStyle: + return self._text_style + + +class ComposableBlockSequence(ComposableBlock): + """An instance of CompositionSequence is a composite string of representation that contains a + sequence of composable elements. + """ + + def __init__(self, content: (None, list[ComposableBlock, ComposableText]) = None, + start_tag: (None, ComposableText) = None, end_tag: (None, ComposableText) = None): + self._content = list() if content is None else content + super().__init__(start_tag=start_tag, end_tag=end_tag) + + def append(self, item: (None, ComposableText, ComposableBlock)) -> None: + if item is not None: + self._content.append(item) + + def compose(self) -> collections.abc.Generator[Composable, None, None]: + """Yields the elements of the representable string, flattening all content.""" + if self._start_tag is not None: + yield self._start_tag + if self._content is not None: + for sub_element in self._content: + if isinstance(sub_element, ComposableBlock): + # Call the sub-generator + yield from sub_element.compose() + else: + # This is a leaf (non-composable) element + yield sub_element + if self._end_tag is not None: + yield self._end_tag + + @property + def content(self) -> (None, list): + return self._content + + @content.setter + def content(self, content: (None, list)) -> None: + self._content = content + + def extend(self, iterable: (None, collections.abc.Iterable)): + if iterable is not None: + self.append(self.prepare_item(item) for item in iterable) + + def rep(self, encoding: (None, Encoding) = None, **kwargs) -> str: + return rep_composition(self.compose(), encoding=encoding, **kwargs) + + +class QuasiQuotation(ComposableBlockSequence): + """As a convention in Punctilious, quasi quotes are used to denote natural language. + + """ + + def __init__(self, iterable: (None, collections.Iterable) = None) -> None: + super().__init__(content=iterable, start_tag=QuasiQuotation._static_start_tag, + end_tag=QuasiQuotation._static_end_tag) + + _static_end_tag = ComposableText(plaintext='"', unicode='⌝') + + _static_start_tag = ComposableText(plaintext='"', unicode='⌜') + + +class ParentheticalExpression(ComposableBlockSequence): + """A parenthetical-expression is the representation of a formula or sub-formula where the + content is included between an opening and closing parenthesis. + + """ + + def __init__(self, iterable: (None, collections.Iterable) = None) -> None: + super().__init__(content=iterable, start_tag=QuasiQuotation._static_start_tag, + end_tag=QuasiQuotation._static_end_tag) + + _static_end_tag = ComposableText(plaintext=')', latex='\\right)') + + _static_start_tag = ComposableText(plaintext='(', unicode='\\left(') + + +class Paragraph(ComposableBlockSequence): + def __init__(self, iterable: (None, collections.Iterable) = None) -> None: + super().__init__(content=iterable, start_tag=Paragraph._static_start_tag, + end_tag=Paragraph._static_end_tag) + + _static_end_tag = ComposableText(plaintext='\n\n', unicode='\n\n') + + _static_start_tag = ComposableText(plaintext='', unicode='') + + +class Index(ComposableBlockSequence): + def __init__(self, iterable: (None, collections.Iterable) = None) -> None: + super().__init__(iterable=iterable, start_tag=Paragraph._static_start_tag, + end_tag=Paragraph._static_end_tag) + + _static_end_tag = ComposableText(latex='}', plaintext='', unicode='') + + _static_start_tag = ComposableText(latex='_{', plaintext='_', unicode='') + + def prepare_item(self, item: (None, str, int, ComposableText)) -> ComposableText: + """Force conversion of item to StyledText to assure the internal consistency of the + TextComposition.""" + if item is None: + return text_dict.empty_string + elif isinstance(item, str): + if item == '': + return text_dict.empty_string + else: + return ComposableText(plaintext=item, + unicode=unicode_utilities.unicode_subscriptify(s=item)) + elif isinstance(item, ComposableText): + return item + else: + raise TypeError('item is of unsupported type.') + + @property + def content(self) -> StyledText: + return self._content + + def rep(self, encoding: (None, Encoding) = None, **kwargs): + return self.content.rep(encoding=encoding, cap=True) + + +class SansSerifBold(StyledText): + def __init__(self, s: (str, None) = None, plaintext: (None, str, Plaintext) = None, + unicode: (None, str, Unicode2) = None, latex: (None, str) = None) -> None: + super().__init__(s=s, text_style=text_styles.sans_serif_bold, plaintext=plaintext, + unicode=unicode, latex=latex) + + +class Header(ComposableBlockSequence): + def __init__(self, s: (str, None) = None, plaintext: (None, str, Plaintext) = None, + unicode: (None, str, Unicode2) = None, latex: (None, str) = None, + level: (None, int) = None) -> None: + content = SansSerifBold(s=s, plaintext=plaintext, unicode=unicode, latex=latex) + level = prioritize_value(level, 1) + verify(assertion=0 < level < 4, msg='level is only supported between 1 and 3 inclusive.') + self._level = level + start_tag = None + end_tag = None + if level == 1: + start_tag = ComposableText(plaintext='\n# ', unicode='\n# ', latex='\\section{') + end_tag = ComposableText(plaintext='\n', unicode='\n', latex='}') + elif level == 2: + start_tag = ComposableText(plaintext='\n## ', unicode='\n## ', latex='\\subsection{') + end_tag = ComposableText(plaintext='\n', unicode='\n', latex='}') + elif level == 3: + start_tag = ComposableText(plaintext='\n### ', unicode='\n### ', + latex='\\subsubsection{') + end_tag = ComposableText(plaintext='\n', unicode='\n', latex='}') + super().__init__(content=[content], start_tag=start_tag, end_tag=end_tag) + + @property + def level(self) -> int: + return self.level + + +class SansSerifNormal(StyledText): + def __init__(self, s: (str, None) = None, plaintext: (None, str, Plaintext) = None, + unicode: (None, str, Unicode2) = None, latex: (None, str) = None) -> None: + super().__init__(s=s, text_style=text_styles.sans_serif_normal, plaintext=plaintext, + unicode=unicode, latex=latex) + + +class SansSerifItalic(StyledText): + def __init__(self, s: (str, None) = None, plaintext: (None, str, Plaintext) = None, + unicode: (None, str, Unicode2) = None, latex: (None, str) = None) -> None: + super().__init__(s=s, text_style=text_styles.sans_serif_italic, plaintext=plaintext, + unicode=unicode, latex=latex) + + +text_dict.in2 = SansSerifNormal(s='in') +text_dict.let = SansSerifNormal(s='let') +text_dict.be = SansSerifNormal(s='be') +text_dict.be_a = SansSerifNormal(s='be a') +text_dict.be_an = SansSerifNormal(s='be an') +text_dict.the = SansSerifNormal(s='the') + + +class ScriptNormal(StyledText): + def __init__(self, plaintext: str, unicode: (None, str) = None, + latex: (None, str) = None) -> None: + super().__init__(text_style=text_styles.script_normal, plaintext=plaintext, unicode=unicode, + latex=latex) + + +class SerifBoldItalic(StyledText): + def __init__(self, s: (None, str) = None, plaintext: (None, str) = None, + unicode: (None, str) = None, latex: (None, str) = None) -> None: + super().__init__(s=s, text_style=text_styles.serif_bold_italic, plaintext=plaintext, + unicode=unicode, latex=latex) + + +class SerifItalic(StyledText): + def __init__(self, s: (None, str) = None, plaintext: (None, str) = None, + unicode: (None, str) = None, latex: (None, str) = None) -> None: + super().__init__(s=s, text_style=text_styles.serif_italic, plaintext=plaintext, + unicode=unicode, latex=latex) + + +class SerifNormal(StyledText): + def __init__(self, plaintext: str, unicode: (None, str) = None, + latex: (None, str) = None) -> None: + super().__init__(text_style=text_styles.serif_normal, plaintext=plaintext, unicode=unicode, + latex=latex) + + +class Subscript(StyledText): + def __init__(self, plaintext: str, unicode: (None, str) = None, + latex: (None, str) = None) -> None: + super().__init__(text_style=text_styles.subscript, plaintext=plaintext, unicode=unicode, + latex=latex) + + +def wrap_text(text): + """Wrap text for friendly rendering as text, e.g. in a console. + + :param text: + :return: + """ + return '\n'.join(textwrap.wrap(text=text, width=configuration.text_output_total_width, + subsequent_indent=f'\t', break_on_hyphens=False, expand_tabs=True, tabsize=4)) + + +class ProofFormat(repm.ValueName): + pass + + +class ProofFormats(repm.ValueName): + """A catalog of supported proof presentation formats.""" + + def __init__(self, value_name: str) -> None: + super().__init__(value_name=value_name) + self._flow_chart_proof = ProofFormat('flow chart proof') + self._formal_proof = ProofFormat('formal proof') + self._paragraph_proof = ProofFormat('paragraph proof') + self._two_column_proof = ProofFormat('two column proof') + + @property + def flow_chart_proof(self) -> ProofFormat: + return self._flow_chart_proof + + @property + def formal_proof(self) -> ProofFormat: + return self._formal_proof + + @property + def paragraph_proof(self) -> ProofFormat: + return self._paragraph_proof + + @property + def two_column_proof(self) -> ProofFormat: + return self._two_column_proof + + +class NameType(repm.ValueName): + """A distinctive type of name supported to designate objects.""" + + def __init__(self, value_name: str): + super().__init__(value_name=value_name) + + +class NameTypes(repm.ValueName): + """A catalog of supported name types.""" + + def __init__(self, value_name: str): + super().__init__(value_name=value_name) + self._symbol = NameType('symbol') + self._acronym = NameType('acronym') + self._name = NameType('name') + self._explicit_name = NameType('explicit name') + + @property + def symbol(self) -> NameType: + """A single-character representation, e.g.: ⌜=⌝,⌜x⌝,⌜∀⌝.""" + return self._symbol + + @property + def acronym(self) -> NameType: + """A shortened representation composed as a subset of the name characters, e.g.: ⌜qed⌝, + ⌜max⌝,⌜mp⌝.""" + return self._acronym + + @property + def name(self) -> NameType: + """A conventional representation, e.g.: ⌜equal⌝,⌜conjunction⌝.""" + return self._name + + @property + def explicit_name(self) -> NameType: + """An extended representation, e.g.: ⌜logical-and⌝,⌜if-and-only-if⌝.""" + return self._explicit_name + + +name_types = NameTypes(value_name='name types') +"""The catalog of the supported types of names / symbolic representations used to identify +objects.""" + + +def equal_not_none(s1: (None, str), s2: (None, str)): + """Compare 2 strings are return if they are equal, unless either or both are None.""" + return False if s1 is None or s2 is None else s1 == s2 + + +def subscriptify(text: (str, ComposableText) = '', encoding: Encoding = encodings.plaintext): + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + if text is None: + return '' + match encoding: + case encodings.plaintext: + return text + case encodings.unicode: + if isinstance(text, ComposableText): + # The Unicode set of subscript characters is very limited, + # subscriptification must be executed on the plaintext value + # of the Unicode string. + text = text.rep_as_plaintext() + return unicode_utilities.unicode_subscriptify(text) + case encodings.latex: + return f'_{{{text}}}' + case _: + return text + + +class Locale: + def __init__(self, name: str): + self._name = name + self._paragraph_end = None + self._paragraph_start = None + self._qed = None + + def __hash__(self): + return hash(self._name) + + def __repr__(self): + return self._name + + def __str__(self): + return self._name + + @property + def name(self): + return self._name + + @property + @abc.abstractmethod + def paragraph_end(self) -> StyledText: + raise NotImplementedError() + + @property + @abc.abstractmethod + def paragraph_start(self) -> StyledText: + raise NotImplementedError() + + @property + @abc.abstractmethod + def qed(self) -> StyledText: + raise NotImplementedError() + + +class VerificationSeverity(repm.ValueName): + def __init__(self, name): + super().__init__(name) + + +class VerificationSeverities(repm.ValueName): + def __init__(self, name): + super().__init__(name) + self.verbose = VerificationSeverity('verbose') + self.information = VerificationSeverity('information') + self.warning = VerificationSeverity('warning') + self.error = VerificationSeverity('error') + + +verification_severities = VerificationSeverities('verification_severities') + + +def verify(assertion, msg, severity: VerificationSeverity = verification_severities.error, + **kwargs): + if not assertion: + contextual_information = '' + for key, value in kwargs.items(): + value_as_string = f'(str conversion failure of type {str(type(value))})' + if value is None: + value = 'None' + else: + try: + value_as_string = str(value) + finally: + pass + contextual_information += f'\n{key}: {value_as_string}' + report = f'{str(severity).upper()}: {msg}\nContextual information:{contextual_information}' + repm.prnt(report) + if severity is verification_severities.warning: + warnings.warn(report) + if configuration.raise_exception_on_verification_error and severity is verification_severities.error: + raise FailedVerificationException(msg=report, **kwargs) + + +class InconsistencyWarning(UserWarning): + pass + + +class Configuration: + """Configuration settings. + + This class allows the storage of all punctilious configuration and preference settings. + + """ + + def __init__(self): + self.auto_index = None + self.default_axiom_declaration_symbol = None + self.default_axiom_inclusion_symbol = None + self.default_definition_declaration_symbol = None + self.default_definition_inclusion_symbol = None + self.default_formula_symbol = None + self.default_free_variable_symbol = None + self.default_parent_hypothesis_statement_symbol = None + self.default_child_hypothesis_theory_symbol = None + self.default_inference_rule_declaration_symbol = None + self.default_inference_rule_inclusion_symbol = None + self.default_note_symbol = None + self.default_relation_symbol = None + self.default_statement_symbol = None + self.default_symbolic_object_symbol = None + self.default_theory_symbol = None + self.echo_axiom_declaration = None + self.echo_axiom_inclusion = None + self._echo_default = None + self.echo_definition_declaration = None + self.echo_definition_inclusion = None + self.echo_definition_direct_inference = None + self.echo_formula_declaration = None + self.echo_hypothesis = None + self.echo_inferred_statement = None + self.echo_note = None + self.echo_relation = None + self.echo_simple_objct_declaration = None + self.echo_statement = None + self.echo_proof = None + self.echo_symbolic_objct = None + self.echo_theory_elaboration_sequence_declaration = None + self.echo_universe_of_discourse_declaration = None + self.echo_free_variable_declaration = None + self.echo_encoding = None + self.locale = None + self.output_index_if_max_index_equal_1 = None + self.raise_exception_on_verification_error = None + self.title_text_style = None + self.encoding = None + self.text_output_indent = None + self.two_columns_proof_left_column_width = None + self.two_columns_proof_right_column_width = None + self.text_output_total_width = None + self.warn_on_inconsistency = None + + @property + def echo_default(self) -> (None, bool): + return self._echo_default + + @echo_default.setter + def echo_default(self, value: (None, bool)): + self._echo_default = value + + +configuration = Configuration() + + +class PyvisConfiguration: + """pyvis package is used to build graphs as interactive HTML pages. + This class stores the corresponding configuration settings.""" + + def __init__(self): + self.axiom_inclusion_args = {'shape': 'box', 'color': '#81C784'} + self.definition_inclusion_args = {'shape': 'box', 'color': '#90CAF9'} + self.inferred_statement_args = {'shape': 'box', 'color': '#FFF59D'} + self.label_wrap_size = 20 + self.title_wrap_size = 32 + + +pyvis_configuration = PyvisConfiguration() + + +def unpack_formula(o: (TheoreticalObject, Formula, FormulaStatement)) -> Formula: + """Receive a theoretical-objct and unpack its formula if it is a statement that contains a + formula.""" + verify(is_in_class(o, classes.theoretical_objct), + 'Parameter ⌜o⌝ must be an element of the theoretical-objct declarative-class.', o=o) + if hasattr(o, 'valid_proposition'): + # Unpack python objects that "contain" their formula, + # such as FormulaStatement, DirectAxiomInference, etc. + return o.valid_proposition + else: + return o + + +class Consistency(repm.ValueName): + """A qualification regarding the consistency of a theory.""" + + def __init__(self, name): + super().__init__(name) + + +class ConsistencyValues(repm.ValueName): + """The list of consistency values.""" + + def __init__(self, name): + super().__init__(name) + + proved_consistent = Consistency('proved-consistent') + proved_inconsistent = Consistency('proved-inconsistent') + undetermined = Consistency('undetermined') + + +consistency_values = ConsistencyValues('consistency-values') +"""The list of consistency values.""" + + +class DeclarativeClass(repm.ValueName): + """The DeclarativeClass python class models a declarative-class.""" + + def __init__(self, name, natural_language_name): + super().__init__(name) + + +class DeclarativeClassList(repm.ValueName): + """A list of of well-known declarative-classes.""" + + def __init__(self, name, natural_language_name): + super().__init__(name) + self.atheoretical_statement = DeclarativeClass('atheoretical_statement', + 'atheoretical-statement') + self.axiom = DeclarativeClass('axiom', 'axiom') + self.axiom_inclusion = DeclarativeClass('axiom_inclusion', 'axiom-inclusion') + self.definition = DeclarativeClass('definition', 'definition') + self.definition_inclusion = DeclarativeClass('definition_inclusion', 'definition-inclusion') + self.direct_axiom_inference = DeclarativeClass('direct_axiom_inference', + 'direct-axiom-inference') + self.direct_definition_inference = DeclarativeClass('direct_definition_inference', + 'direct-definition-inference') + self.formula = DeclarativeClass('formula', 'formula') + self.formula_statement = DeclarativeClass('formula_statement', 'formula-statement') + self.free_variable = DeclarativeClass('free_variable', 'free-variable') + self.hypothesis = DeclarativeClass('hypothesis', 'hypothesis') + self.inference_rule = DeclarativeClass('inference_rule', 'inference-rule') + self.inference_rule_inclusion = DeclarativeClass('inference_rule_inclusion', + 'inference-rule-inclusion') + self.inferred_proposition = DeclarativeClass('inferred_proposition', 'inferred-proposition') + self.note = DeclarativeClass('note', 'note') + self.proposition = DeclarativeClass('proposition', 'proposition') + self.relation = DeclarativeClass('relation', 'relation') + self.simple_objct = DeclarativeClass('simple_objct', 'simple-objct') + self.statement = DeclarativeClass('statement', 'statement') + self.symbolic_objct = DeclarativeClass('symbolic_objct', 'symbolic-objct') + self.theoretical_objct = DeclarativeClass('theoretical_objct', 'theoretical-objct') + self.theory_elaboration = DeclarativeClass('theory', 'theory') + self.universe_of_discourse = DeclarativeClass('universe_of_discourse', + 'universe-of-discourse') + # Shortcuts + self.a = self.axiom + self.dai = self.direct_axiom_inference + self.ddi = self.direct_definition_inference + self.f = self.formula + self.r = self.relation + self.t = self.theory_elaboration + self.u = self.universe_of_discourse + + +"""A list of well-known declarative-classes.""" +declarative_class_list = DeclarativeClassList('declarative_class_list', 'declarative-class-list') + +"""A list of well-known declarative-classes. A shortcut for p.declarative_class_list.""" +classes = declarative_class_list + + +def is_in_class(o: TheoreticalObject, c: DeclarativeClass) -> bool: + """Return True if o is a member of the declarative-class c, False otherwise. + + :param o: An arbitrary python object. + :param c: A declarative-class. + :return: (bool). + """ + verify(o is not None, 'o is None.', o=o, c=c) + # verify(hasattr(o, 'is_in_class'), 'o does not have attribute is_in_class.', o=o, c=c) + verify(callable(getattr(o, 'is_in_class')), 'o.is_in_class() is not callable.', o=o, c=c) + return o.is_in_class(c) + + +class FailedVerificationException(Exception): + """Python custom exception raised whenever a verification fails if + setting raise_exception_on_verification_failure = True.""" + + def __init__(self, msg, **kwargs): + self.msg = msg + self.kwargs = kwargs + + +class UnsupportedInferenceRuleException(Exception): + """Python custom exception raised if an attempt is made + to use an inference rule on a theory.""" + + def __init__(self, msg, **kwargs): + self.msg = msg + self.kwargs = kwargs + + +def set_attr(o, a, v): + """A wrapper function for the naive setattr function. + It set attributes on Tuple instances in a prudent manner. + """ + assert isinstance(a, str) + if not hasattr(o, a): + setattr(o, a, v) + else: + assert getattr(o, a) is v + + +# import rich +# import rich.console +# import rich.markdown +# import rich.table + +class NoNameSolutionException(LookupError): + """The NoNameSolutionException is the exception that is raised when a NameSet cannot be + represented because no representation was found for the required Encoding.""" + + def __init__(self, nameset, encoding): + self.nameset = nameset + self.encoding = encoding + + def __str__(self): + return f'The nameset ⌜{repr(self.nameset)}⌝ contains no representation for the ⌜' \ + f'{self.encoding}⌝ text-format.' + + +class NameSet(Composable): + """A set of qualified names used to identify an object. + + TODO: Enhancement: for relations in particular, add a verb NameType (e.g. implies). + """ + + def __init__(self, s: (None, str) = None, symbol: (None, str, StyledText) = None, + index: (None, int, str, ComposableText) = None, + namespace: (None, SymbolicObject) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str) = None, + subtitle: (None, str, ComposableText) = None): + if s is not None: + # Shortcut parameter to quickly declare a nameset from a python string, + # inferring in best-effort mode whether the string represent a symbol, + # a name, or a representation of another name-type. + if symbol is None and len(s) == 1: + # Assumption: a string of a single character represent a symbol. + symbol = s + elif explicit_name is None and ' ' in s: + # Assumption: a string containing some space represent an explicit-name. + explicit_name = s + elif name is None and len(s) > 1: + name = s + # Symbolic names + if isinstance(symbol, str): + symbol = StyledText(s=symbol, text_style=text_styles.serif_italic) + self._symbol = symbol + # TODO: In NameSet.__init__, retrieve index_as_int when index is not an int + self._index_as_int = index if isinstance(index, int) else None + if isinstance(index, str): + index = Subscript(plaintext=index) + elif isinstance(index, int): + index = Subscript(plaintext=str(index)) + self._index = index + self._namespace = namespace + if isinstance(dashed_name, str): + dashed_name = SerifItalic(s=dashed_name) + self._dashed_name = dashed_name if isinstance(dashed_name, StyledText) else StyledText( + s=dashed_name, text_style=text_styles.serif_italic) if isinstance(dashed_name, + str) else None + verify(self.symbol is not None, msg='The symbol of this nameset is None.', slf=self) + # Natural names + if isinstance(acronym, str): + acronym = SansSerifNormal(acronym) + self._acronym = acronym + if isinstance(abridged_name, str): + abridged_name = SansSerifNormal(abridged_name) + self._abridged_name = abridged_name + if isinstance(name, str): + name = SansSerifNormal(name) + self._name = name + if isinstance(explicit_name, str): + explicit_name = SansSerifNormal(explicit_name) + self._explicit_name = explicit_name + # Section reference names + if isinstance(ref, str): + ref = SansSerifBold(ref) + self._ref = ref + if paragraph_header is None: + paragraph_header = paragraph_headers.uncategorized + self._paragraph_header = paragraph_header + self._subtitle = subtitle + + def __eq__(self, other): + """Two NameSets n and m are equal if their (symbol, index) pairs are equal. + """ + return type(self) is type( + other) and self.symbol == other.symbol and self.index == other.index + + def __hash__(self): + return hash((NameSet, self.symbol, self.index)) + + def __repr__(self): + return self.rep_symbol() + + def __str__(self): + return self.rep_symbol() + + @property + def acronym(self) -> ComposableText: + return self._acronym + + @property + def paragraph_header(self) -> ParagraphHeader: + """The category of this statement.""" + return self._paragraph_header + + @paragraph_header.setter + def paragraph_header(self, paragraph_header: ParagraphHeader): + """TODO: Remove this property setter to only set property values at init-time, + and make the hash stable. This quick-fix was necessary while migrating from + the old approach that used the obsolete Title class.""" + self._paragraph_header = paragraph_header + + def compose(self, pre: (None, str, Composable) = None, post: (None, str, Composable) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + something = yield from self.compose_symbol(pre=pre, post=post) + return something + + def compose_accurate_name(self, cap: (None, bool) = None, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the most least unambiguous natural-language name in the nameset. + """ + something = yield from yield_composition( + prioritize_value(self._explicit_name, self._name, self._abridged_name, self._acronym), + cap=cap, pre=pre, post=post) + return something + + def compose_abridged_name(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._abridged_name is None: + return False + else: + something = yield from yield_composition(self._abridged_name, pre=pre, post=post) + return something + + def compose_acronym(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._acronym is None: + return False + else: + something = yield from yield_composition(self._acronym, pre=pre, post=post) + return something + + def compose_paragraph_header_unabridged(self, cap: (None, bool) = None, + pre: (None, str, Composable) = None, post: (None, str, Composable) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + if self._paragraph_header is None: + return False + else: + something = yield from yield_composition(self.paragraph_header.natural_name, cap=cap, + pre=pre, post=post) + return something + + def compose_paragraph_header_abridged(self, cap: (None, bool) = None, + pre: (None, str, Composable) = None, post: (None, str, Composable) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + if self._paragraph_header is None: + return False + else: + something = yield from yield_composition(self._paragraph_header.abridged_name, cap=cap, + pre=pre, post=post) + return something + + def compose_compact_name(self, cap: (None, bool) = None, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the most compact / shortest name in the nameset. + """ + something = yield from yield_composition( + prioritize_value(self._abridged_name, self._acronym, self._name, self._explicit_name), + cap=cap, pre=pre, post=post) + return something + + def compose_conventional_name(self, cap: (None, bool) = None, + pre: (None, str, Composable) = None, post: (None, str, Composable) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + """Composes the most conventional / frequently-used name in the nameset. + """ + something = yield from yield_composition( + prioritize_value(self._name, self._abridged_name, self._acronym, self._explicit_name), + cap=cap, pre=pre, post=post) + return something + + def compose_dashed_name(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._dashed_name is None: + return False + else: + something = yield from yield_composition(self._dashed_name, pre=pre, post=post) + return something + + def compose_explicit_name(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._explicit_name is None: + return False + else: + something = yield from yield_composition(self._explicit_name, pre=pre, post=post) + return something + + def compose_index(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._symbol is None: + return False + else: + something = yield from yield_composition(self._index, pre=pre, post=post) + return something + + def compose_name(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._name is None: + return False + else: + something = yield from yield_composition(self._name, pre=pre, post=post) + return something + + def compose_qualified_symbol(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes: ⌜[dashed-name] ([symbol])⌝, or ⌜[symbol]⌝ if dashed-name is None. The + rationale is to enrich the symbol with a more meaningful dashed-name if it is available.""" + if self._dashed_name is None: + # Representation of the form: [symbol][index] + yield from self.compose_symbol(pre=pre, post=post) + return True + else: + # Representation of the form: [dashed-named] ([symbol][index]) + yield from yield_composition(pre) + yield from self.compose_dashed_name() + yield from self.compose_symbol(pre=' (', post=')') + yield from yield_composition(post) + return True + + def compose_ref(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, None, None]: + if self._ref is None: + return False + else: + something = yield from yield_composition(self._ref, pre=pre, post=post) + return something + + def compose_ref_link(self, cap: (None, bool) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + output1 = yield from self.compose_paragraph_header_abridged(cap=cap) + pre = text_dict.space if output1 else None + output2 = yield from self.compose_ref(pre=pre) + pre = ' (' if output1 or output2 else None + post = ')' if output1 or output2 else None + output3 = yield from self.compose_symbol(pre=pre, post=post) + return True + + def compose_subtitle(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._subtitle is None: + return False + else: + something = yield from yield_composition(self._subtitle, pre=pre, post=post) + return something + + def compose_symbol(self, pre: (None, str, Composable) = None, + post: (None, str, Composable) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + if self._symbol is None: + return False + else: + something = yield from yield_composition(self._symbol, self.compose_index(), pre=pre, + post=post) + return something + + def compose_title(self, cap: (None, bool) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + output1 = yield from self.compose_paragraph_header_unabridged(cap=cap) + pre = text_dict.space if output1 else None + output2 = yield from self.compose_ref(pre=pre) + yield SansSerifNormal(' (') + if self.namespace is not None: + yield from self.namespace.compose_symbol() + yield SansSerifNormal('.') + yield from self.compose_symbol() + yield SansSerifNormal(')') + yield from self.compose_subtitle(pre=' - ') + return True + + @property + def explicit_name(self) -> ComposableText: + return self._explicit_name + + @property + def index(self) -> str: + return self._index + + @property + def index_as_int(self) -> int: + """Especially for auto-indexing purposes, exposes the index as an int if it is an int.""" + return self._index_as_int + + @property + def name(self) -> StyledText: + return self._name + + @property + def namespace(self) -> SymbolicObject: + """TODO: Cross-referencing the parent object in the nameset attribute is ugly, + the approach is wrong, correct this. + + :return: + """ + return self._namespace + + @property + def ref(self) -> str: + """Unabridged name.""" + return self._ref + + @ref.setter + def ref(self, ref: str): + """TODO: Remove this property setter to only set property values at init-time, + and make the hash stable. This quick-fix was necessary while migrating from + the old approach that used the obsolete Title class.""" + self._ref = ref + + def rep(self, encoding: (None, Encoding) = None, **kwargs) -> str: + """Return the default representation for this python obje. + + :return: + """ + return f'{self.rep_symbol(encoding=encoding)}' + + def rep_abridged_name(self, cap: (None, bool) = None, encoding: (None, Encoding) = None) -> ( + None, str): + """Return a string that represent the object as an acronym.""" + return rep_composition(composition=self.compose_abridged_name(), encoding=encoding) + + def rep_accurate_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None): + """Returns the most accurate (longest) possible name in the nameset for the required + text-format. + + Order of priority: + 1) explicit-name + 2) name + 3) acronym + 4) symbol + """ + return rep_composition(composition=self.compose_accurate_name(), encoding=encoding, cap=cap) + + def rep_acronym(self, encoding: (None, Encoding) = None, compose: bool = False) -> (None, str): + """Return a string that represent the object as an acronym.""" + return rep_composition(composition=self.compose_acronym(), encoding=encoding) + + def rep_compact_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None): + """Returns the shortest possible name in the nameset for the required text-format. + + Order of priority: + 1) symbol + 2) acronym + 3) name + 4) explicit-name + """ + return rep_composition(composition=self.compose_compact_name(), encoding=encoding, cap=cap) + + def rep_conventional_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None): + """Returns the most conventional (default) possible name in the nameset for the required + text-format. + + Order of priority: + 2) name + 3) acronym + 4) symbol + 1) explicit-name + """ + return rep_composition(composition=self.compose_conventional_name(), encoding=encoding, + cap=cap) + + def rep_dashed_name(self, encoding: (None, Encoding) = None, compose: bool = False) -> ( + None, str): + return rep_composition(composition=self.compose_dashed_name(), encoding=encoding) + + def rep_explicit_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> ( + None, str): + """Return a string that represent the object as an explicit name.""" + return rep_composition(composition=self.compose_explicit_name(), encoding=encoding, cap=cap) + + def rep_fully_qualified_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None, + compose: bool = False): + conventional = self.rep_conventional_name(encoding=encoding, cap=cap) + sym = self.rep_symbol(encoding=encoding) + rep = ComposableBlockSequence() + rep.append(conventional) + if conventional != sym: + rep.append('(') + rep.append(sym) + rep.append(')') + if not compose: + rep = rep.rep(encoding=encoding) + return rep + + def rep_mention(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> str: + """A mention of the form: [symbol] [unabridged-category] + """ + rep = '' + if self._name is not None: + rep = rep + self.rep_name(encoding=encoding, cap=cap) + rep = rep + ' ' + rep = rep + StyledText(s='(', text_style=text_styles.sans_serif_bold).rep(encoding=encoding) + rep = rep + self.rep_symbol(encoding=encoding) + rep = rep + StyledText(s=')', text_style=text_styles.sans_serif_bold).rep(encoding=encoding) + rep = '' if self._paragraph_header is None else StyledText( + s=self.paragraph_header.natural_name, text_style=text_styles.sans_serif_bold).rep( + encoding=encoding, cap=cap) + return rep + + def rep_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> (None, str): + """Return a string that represent the object as a plain name.""" + return rep_composition(composition=self.compose_name(), encoding=encoding, cap=cap) + + def rep_ref(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> str: + return rep_composition(composition=self.compose_ref(), encoding=encoding, cap=cap) + + def rep_symbol(self, encoding: (None, Encoding) = None, **kwargs) -> (None, str): + """Return a string that represent the object as a symbol.""" + return rep_composition(composition=self.compose_symbol(), encoding=encoding, **kwargs) + + def rep_title(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> str: + """A title of the form: [unabridged-category] [reference] ([symbol]) - [subtitle] + """ + return rep_composition(composition=self.compose_title(cap=cap), encoding=encoding) + + @property + def subtitle(self) -> str: + """A conditional complement to the automatically structured title.""" + return self._subtitle + + @subtitle.setter + def subtitle(self, subtitle: str): + """TODO: Remove this property setter to only set property values at init-time, + and make the hash stable. This quick-fix was necessary while migrating from + the old approach that used the obsolete Title class.""" + self._subtitle = subtitle + + @property + def symbol(self) -> ComposableText: + """The symbol core glyph. + + :return: (StyledText) The symbol core glyph. + """ + return self._symbol + + def to_dict(self): + return {'symbol': self._symbol, 'acronym': self._acronym, 'name': self._name, + 'explicit_name': self._explicit_name} + + +class DashedName: + """A dashed-name to provide more semantically meaningful names to symbolic-objcts in reports + than symbols. + + Features: + - Immutable + """ + + def __init__(self, dashed_named): + verify(isinstance(dashed_named, str), 'dashed-name is not of type str.', + dashed_named=dashed_named) + # TODO: Clean string from non-alphanumeric, digits, dash characters, etc. + self._dashed_name = dashed_named + + def __hash__(self): + """""" + return hash((self._dashed_name)) + + def __repr__(self): + return self.rep() + + def __str__(self): + return self.rep() + + def rep(self, encoding: (None, Encoding) = None) -> str: + """Return the default representation. + """ + return self.rep_dashed_name(encoding=encoding) + + def rep_dashed_name(self, encoding: (None, Encoding) = None) -> str: + """Return a dashed-name representation. + """ + # TODO: Implement encodings + return self._dashed_name + + +class SymbolicObject: + """ + Definition + ---------- + A symbolic-objct is a python object instance that is assigned symbolic names, + that is linked to a theory, but that is not necessarily constitutive of the theory. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, + is_theory_foundation_system: bool = False, is_universe_of_discourse: bool = False, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, namespace: (None, SymbolicObject) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_symbolic_objct, configuration.echo_default, + False) + auto_index = prioritize_value(auto_index, configuration.auto_index, True) + self._declarative_classes = frozenset() + is_theory_foundation_system = False if is_theory_foundation_system is None else is_theory_foundation_system + is_universe_of_discourse = False if is_universe_of_discourse is None else is_universe_of_discourse + if nameset is None: + symbol = configuration.default_symbolic_object_symbol if symbol is None else symbol + if isinstance(symbol, str): + symbol = SerifItalic(symbol) + index = universe_of_discourse.index_symbol(symbol=symbol) if ( + index is None and auto_index) else index + if paragraph_header is None: + paragraph_header = paragraph_headers.uncategorized + nameset = NameSet(symbol=symbol, index=index, namespace=namespace, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=paragraph_header, ref=ref, + subtitle=subtitle) + if isinstance(nameset, str): + symbol = StyledText(plaintext=nameset, text_style=text_styles.serif_italic) + index = universe_of_discourse.index_symbol(symbol=symbol) + nameset = NameSet(symbol=symbol, index=index, namespace=namespace, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=paragraph_header, ref=ref, + subtitle=subtitle) + self._nameset = nameset + self.is_theory_foundation_system = is_theory_foundation_system + self._declare_class_membership(classes.symbolic_objct) + if not is_universe_of_discourse: + self._universe_of_discourse = universe_of_discourse + self._universe_of_discourse.cross_reference_symbolic_objct(o=self) + else: + self._universe_of_discourse = None + if echo: + repm.prnt(self.rep_report()) + + def __hash__(self): + # Symbols are unique within their universe-of-discourse, + # thus hashing can be safely based on the key: U + symbol. + # With a special case for the universe-of-discourse itself, + # where hash of the symbol is sufficient. + return hash(self.nameset) if is_in_class(self, classes.u) else hash( + (self.universe_of_discourse, self.nameset)) + + # def __lt__(self, other): + # """WARNING: Only used for support with the sorted() function, no intention to transmit + # any mathematical meaning.""" + # return str(self) < str(other) + + def __repr__(self): + return self.rep_symbol(encoding=encodings.plaintext) + + def __str__(self): + return self.rep_symbol(encoding=encodings.plaintext) + + def compose(self) -> collections.abc.Generator[Composable, Composable, bool]: + output = yield from self.nameset.compose() + return True + + def compose_class(self) -> collections.abc.Generator[Composable, Composable, bool]: + output = yield SerifItalic(plaintext='symbolic-object') + return True + + def compose_dashed_name(self) -> collections.abc.Generator[Composable, Composable, bool]: + output = yield from self.nameset.compose_dashed_name() + return output + + def compose_paragraph_header_unabridged(self) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from self.nameset.compose_paragraph_header_unabridged() + return output + + def compose_ref(self) -> collections.abc.Generator[Composable, Composable, bool]: + output = yield from self.nameset.compose_ref() + return output + + def compose_ref_link(self, cap: (None, bool) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from self.nameset.compose_ref_link(cap=cap) + return output + + def compose_report(self, close_punctuation: Composable = None, cap: (None, bool) = None, + proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes a report that describes this object.""" + yield from text_dict.let.compose(cap=cap) # TODO: Support cap parameter + yield text_dict.space + yield text_dict.open_quasi_quote + yield from self.compose_symbol() + yield text_dict.close_quasi_quote + yield text_dict.space + yield text_dict.be_a + yield text_dict.space + yield from self.compose_class() + yield text_dict.space + yield text_dict.in2 + yield text_dict.space + yield from self.universe_of_discourse.compose_symbol() + yield prioritize_value(close_punctuation, text_dict.period) + return True + + def compose_symbol(self) -> collections.abc.Generator[Composable, Composable, bool]: + output = yield from self.nameset.compose_symbol() + return output + + def compose_title(self, cap: (None, bool) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from self.nameset.compose_title(cap=cap) + return output + + @property + def declarative_classes(self) -> frozenset[DeclarativeClass]: + """The set of declarative-classes this symbolic-objct is a member of.""" + return self._declarative_classes + + def _declare_class_membership(self, c: DeclarativeClass): + """During construction (__init__()), add the declarative-classes this symboli-objct is + being made a member of.""" + if not hasattr(self, '_declarative_classes'): + setattr(self, '_declarative_classes', frozenset()) + self._declarative_classes = self._declarative_classes.union({c}) + + def echo(self): + repm.prnt(self.rep()) + + def is_declarative_class_member(self, c: DeclarativeClass) -> bool: + """True if this symbolic-objct is a member of declarative-class 𝒞, False, otherwise.""" + if hasattr(self, '_declarative_classes'): + return c in self._declarative_classes + else: + return False + + def is_in_class(self, c: DeclarativeClass) -> bool: + """True if this symbolic-objct is a member of declarative-class 𝒞, False, otherwise. + + A shortcut for o.is_declarative_class_member(...).""" + return self.is_declarative_class_member(c=c) + + def is_symbol_equivalent(self, o2) -> bool: + """Returns true if this object and o2 are symbol-equivalent. + + Definition: + ----------- + Two symbolic-objects o₁ and o₂ are symbol-equivalent if and only if: + 1. o₁ and o₂ have symbol-equivalent package.¹ + 2. o₁ and o₂ have equal symbols.² + + ¹. Theories are symbolic-objects. This recursive condition + yields a complete path between the objects and the universe-of-discourse. + ². Remember that every symbolic-object has a unique symbol in its parent theory. + + Note: + ----- + The symbol-equivalence relation allows to compare any pair of symbolic-objcts, including: + * Both theoretical and atheoretical objects. + * Symbolic-objcts linked to distinct package. + """ + # A theoretical-object can only be compared with a theoretical-object + assert isinstance(o2, SymbolicObject) + if self is o2: + # If the current symbolic-objct is referencing the same + # python object instance, by definitions the two python references + # are referencing the same object. + return True + if not self.universe_of_discourse.is_symbol_equivalent(o2.universe_of_discourse): + return False + if self.nameset != o2.nameset: + return False + return True + + def prnt(self, encoding: (None, Encoding) = None, expand=False): + repm.prnt(self.nameset.rep(encoding=encoding, expand=expand)) + + @property + def ref(self) -> (None, str): + return self.nameset.ref + + def rep(self, encoding: (None, Encoding) = None, **kwargs) -> str: + return rep_composition(composition=self.compose(), encoding=encoding, **kwargs) + + def rep_dashed_name(self, encoding: (None, Encoding) = None) -> str: + return self.nameset.rep_dashed_name(encoding=encoding) + + def rep_formula(self, encoding: (None, Encoding) = None, expand: (None, bool) = None) -> str: + """If supported, return a formula representation, + a symbolic representation otherwise. + + The objective of the repr_as_formula() method is to + represent formulae and formula-statements not as symbols + (e.g.: 𝜑₅) but as expanded formulae (e.g.: (4 > 3)). + Most symbolic-objcts do not have a formula representation, + where we fall back on symbolic representation. + """ + return self.rep_symbol(encoding=encoding) + + def rep_fully_qualified_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None, + compose: bool = False) -> str: + """""" + return self.nameset.rep_fully_qualified_name(encoding=encoding, cap=cap, compose=compose) + + def rep_mention(self, encoding: (None, Encoding) = None, cap: bool = False) -> str: + return self.nameset.rep_mention(encoding=encoding, cap=cap) + + def rep_name(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> str: + return self.nameset.rep_name(encoding=encoding, cap=cap) + + def rep_ref(self, encoding: (None, Encoding) = None, cap: bool = False) -> str: + return self.nameset.rep_ref(encoding=encoding, cap=cap) + + def rep_report(self, encoding: (None, Encoding) = None, proof: (None, bool) = None, + wrap: (None, bool) = None) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + output = rep_composition(composition=self.compose_report(proof=proof), encoding=encoding) + return output + + def rep_symbol(self, encoding: (None, Encoding) = None) -> str: + return self._nameset.rep_symbol(encoding=encoding) + + def rep_title(self, encoding: (None, Encoding) = None, cap: bool = False) -> str: + return self._nameset.rep_title(encoding=encoding, cap=cap) + + @property + def nameset(self) -> NameSet: + """Every symbolic-object that is being referenced must be assigned a unique symbol in its + universe-of-discourse.""" + return self._nameset + + @property + def u(self): + """This symbolic-object''s universe of discourse. Full name: o.universe_of_discourse.""" + return self.universe_of_discourse + + @property + def universe_of_discourse(self): + """This symbolic-object''s universe of discourse. Shortcut: o.u""" + return self._universe_of_discourse + + +class InfixPartialFormula: + """Hack to provide support for pseudo-infix notation, as in: p |implies| q. + This is accomplished by re-purposing the | operator, + overloading the __or__() method that is called when | is used, + and glueing all this together with the InfixPartialFormula class. + """ + + def __init__(self, a, b): + self.a = a + self.b = b + + def __or__(self, other=None): + """Hack to provide support for pseudo-infix notation, as in: p |implies| q. + This is accomplished by re-purposing the | operator, + overloading the __or__() method that is called when | is used, + and glueing all this together with the InfixPartialFormula class. + """ + # print(f'IPF.__or__: self = {self}, other = {other}') + relation = self.b + first_parameter = self.a + second_parameter = other + return self.a.u.f(relation, first_parameter, second_parameter) + + def __str__(self): + return f'InfixPartialFormula(a = {self.a}, b = {self.b})' + + # def __ror__(self, other=None): # """Hack to provide support for pseudo-infix notation, as in: p |implies| q. # """ # print(f'IPF.__ror__: self = {self}, other = {other}') # if not isinstance(other, InfixPartialFormula): # return InfixPartialFormula(a=self, b=other) # return self.a.u.f(self.b, self.a, other) # else: # verify(assertion=1 == 2, msg='failed infix notation', slf_a=self.a, slf_b=self.b) # return self.a.u.f(self.a, self.b, self) + + +class TheoreticalObject(SymbolicObject): + """ + Definition + ---------- + Given a theory 𝒯, a theoretical-object ℴ is an object that: + * is constitutive of 𝒯, + * may be referenced in 𝒯 formulae (i.e. 𝒯 may "talk about" ℴ), + * that may be but is not necessarily a statement in 𝒯 (e.g. it may be an invalid or + inconsistent formula). + + The following are supported classes of theoretical-objects: + * axiom + * formula + * lemma + * proposition + * relation + * simple-object + * theorem + * theory + * variable + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, + is_theory_foundation_system: bool = False, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + namespace: (None, SymbolicObject) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + # pseudo-class properties. these must be overwritten by + # the parent constructor after calling __init__(). + # the rationale is that checking python types fails + # miserably (e.g. because of context managers), + # thus, implementing explicit functional-types will prove + # more robust and allow for duck typing. + super().__init__(universe_of_discourse=universe_of_discourse, + is_theory_foundation_system=is_theory_foundation_system, symbol=symbol, index=index, + auto_index=auto_index, namespace=namespace, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=paragraph_header, ref=ref, subtitle=subtitle, nameset=nameset, + echo=False) + super()._declare_class_membership(classes.theoretical_objct) + if echo: + repm.prnt(self.rep_fully_qualified_name()) + + def __and__(self, other=None): + """Hack to provide support for pseudo-postfix notation, as in: p & ++. + This is accomplished by re-purposing the & operator, + overloading the __and__() method that is called when & is used, + and gluing all this together. + """ + # print(f'TO.__and__: self = {self}, other = {other}') + return interpret_formula(u=self.u, arity=1, flexible_formula=(other, self)) + + def __call__(self, *parameters): + """Hack to provide support for direct function-call notation, as in: p(x). + """ + # print(f'TO.__call__: self = {self}, parameters = {parameters}') + arity = len(parameters) + return interpret_formula(u=self.u, arity=arity, flexible_formula=(self, *parameters)) + + def __xor__(self, other=None): + """Hack to provide support for pseudo-prefix notation, as in: neg ^ p. + This is accomplished by re-purposing the ^ operator, + overloading the __xor__() method that is called when ^ is used, + and gluing all this together. + """ + # print(f'TO.__xor__: self = {self}, other = {other}') + return interpret_formula(u=self.u, arity=1, flexible_formula=(self, other)) + + def __or__(self, other=None): + """Hack to provide support for pseudo-infix notation, as in: p |implies| q. + This is accomplished by re-purposing the | operator, + overloading the __or__() method that is called when | is used, + and gluing all this together with the InfixPartialFormula class. + """ + # print(f'TO.__or__: self = {self}, other = {other}') + if not isinstance(other, InfixPartialFormula): + return InfixPartialFormula(a=self, b=other) + else: + # return self.u.f(self, other.a, other.b) + return interpret_formula(u=self.u, arity=2, flexible_formula=(self, other.a, other.b)) + + def add_to_graph(self, g): + """Add this theoretical object as a node in the target graph g. + Recursively add directly linked objects unless they are already present in g. + NetworkX automatically and quietly ignores nodes and edges that are already present.""" + g.add_node(self.rep_name()) + self.u.add_to_graph(g) + + def get_variable_ordered_set(self) -> tuple: + """Return the ordered-set of free-variables contained in ⌜self⌝, + ordered in canonical-order (TODO: add link to doc on canonical-order). + + This function recursively traverse formula components (relation + parameters) + to compile the set of variables contained in o. + + Internally, it uses a mutable python list, which is natively ordered, + to proxy an ordered-set. It then returns an immutable python tuple + for stability. + """ + ordered_set = list() + self._get_variable_ordered_set(ordered_set) + # Make the ordered-set proxy immutable. + ordered_set = tuple(ordered_set) + return ordered_set + + def _get_variable_ordered_set(self, ordered_set=None): + """This private method uses a mutable python list, + which is natively ordered, to proxy an ordered-set, + and populate the variable oredered-set during formula traversal.""" + if is_in_class(self, classes.formula_statement): + # Unpack the formula statement to + # retrieve the variables contained in its formula. + self.valid_proposition._get_variable_ordered_set(ordered_set) + if is_in_class(self, classes.formula): + self.relation._get_variable_ordered_set(ordered_set) + # Uses for i in range() to preserve parameter order. + for i in range(0, len(self.parameters)): + self.parameters[i]._get_variable_ordered_set(ordered_set) + elif is_in_class(self, classes.free_variable): + if self not in ordered_set: + ordered_set.append(self) + + def is_formula_syntactically_equivalent_to(self, o2: TheoreticalObject) -> bool: + """Returns true if ⌜self⌝ is formula-syntactically-equivalent to ⌜o2⌝. + + Parameters: + ----------- + o2 : TheoreticalObject + The theoretical-object with which to verify formula-equivalence. + + """ + return self is o2 + + def is_masked_formula_similar_to(self, + o2: (Formula, FormulaStatement, FreeVariable, Relation, SimpleObjct, TheoreticalObject), + mask: (None, frozenset[FreeVariable]) = None) -> bool: + """Given two theoretical-objects o₁ (self) and o₂, + and a finite set of variables 𝐌, + return True if o₁ and o₂ are masked-formula-similar, False otherwise. + + Definition + ---------- + Given two theoretical-objects o₁ (self) and o₂, + and a finite set of variables 𝐌, + o₁ and o₂ are masked-formula-similar if and only if: + 1. o₁ is formula-syntactically-equivalent to o₂, including the special case + when both o₁ and o₂ are symbolic-equivalent to a variable 𝐱 in 𝐌, + 2. or the weaker condition that strictly one theoretical-object o₁ or o₂ + is symbolic-equivalent to a variable 𝐱 in 𝐌, + and, denoting the other object the variable-observed-value, + every variable-observed-value of 𝐱 are formula-syntactically-equivalent. + 3. or, if o₁ or o₂ are both formula, their components are masked-formula-similar. + + Note + ---- + masked-formula-similitude is not a well-defined equivalence-class. + In effect, equivalence-classes are reflexive, symmetric, and transitive. + An obvious counterexample: (x + 1) ~ (5 + x). + This is why it is called similitude and not equivalence. + + Parameters + ---------- + o2 : TheoreticalObject + A theoretical-object with which to verify masked-formula-similitude. + + mask: set + Set of FreeVariable elements. If None, the empty set is assumed. + + """ + output, _values = self._is_masked_formula_similar_to(o2=o2, mask=mask) + return output + + def _is_masked_formula_similar_to(self, + o2: (Formula, FormulaStatement, FreeVariable, Relation, SimpleObjct, TheoreticalObject), + mask: (None, frozenset[FreeVariable]) = None, _values: (None, dict) = None) -> ( + bool, dict): + """A "private" version of the is_masked_formula_similar_to method, + with the "internal" parameter _values. + + Parameters + ---------- + o2 : TheoreticalObject + A theoretical-object with which to verify masked-formula-similitude. + + mask: set + Set of FreeVariable elements. If None, the empty set is assumed. + + _values: + Internal dict of FreeVariable values used to keep track + of variable values consistency. + """ + o1 = self + # if is_in_class(o1, classes.formula_statement): + # # Unpack the formula-statement + # # to compare the formula it contains. + # o1 = o1.valid_proposition + # if is_in_class(o2, classes.formula_statement): + # # Unpack the formula-statement + # # to compare the formula it contains. + # o2 = o2.valid_proposition + mask = frozenset() if mask is None else mask + _values = dict() if _values is None else _values + if o1 is o2: + # Trivial case. + return True, _values + if o1.is_formula_syntactically_equivalent_to(o2): + # Sufficient condition. + return True, _values + if isinstance(o1, (Formula, FormulaStatement)) and isinstance(o2, + (Formula, FormulaStatement)): + # When both o1 and o2 are formula, + # verify that their components are masked-formula-similar. + relation_output, _values = o1.relation._is_masked_formula_similar_to(o2=o2.relation, + mask=mask, _values=_values) + if not relation_output: + return False, _values + # Arities are necessarily equal. + for i in range(len(o1.parameters)): + parameter_output, _values = o1.parameters[i]._is_masked_formula_similar_to( + o2=o2.parameters[i], mask=mask, _values=_values) + if not parameter_output: + return False, _values + return True, _values + if o1 not in mask and o2 not in mask: + # We know o1 and o2 are not formula-syntactically-equivalent, + # and we know they are not in the mask. + return False, _values + if o1 in mask: + variable = o2 + newly_observed_value = o1 + if variable in _values: + already_observed_value = _values[variable] + if not newly_observed_value.is_formula_syntactically_equivalent_to( + already_observed_value): + return False, _values + else: + _values[variable] = newly_observed_value + if o2 in mask: + variable = o1 + newly_observed_value = o2 + if variable in _values: + already_observed_value = _values[variable] + if not newly_observed_value.is_formula_syntactically_equivalent_to( + already_observed_value): + return False, _values + else: + _values[variable] = newly_observed_value + return True, _values + + def substitute(self, substitution_map, target_theory, lock_variable_scope=None): + """Given a theoretical-objct o₁ (self), + and a substitution map 𝐌, + return a theoretical-objct o₂ + where all components, including o₂ itself, + have been substituted if present in 𝐌. + + Note + ---- + The scope of variables is locked to their most-parent formula. + In consequence, and in order to generate valid formluae, + substition must simultaneously substite all variables with + new variables. + + Note + ---- + The result of substitution depends on the order + of traversal of o₁. The substitution() method + uses the canonical-traversal-method which is: + top-down, left-to-right, depth-first, relation-before-parameters. + + Parameters + ---------- + substitution_map : dict + A dictionary of theoretical-objct pairs (o, o'), + where o is the original theoretical-objct in o₁, + and o' is the substitute theoretical-objct in o₂. + + """ + lock_variable_scope = True if lock_variable_scope is None else lock_variable_scope + substitution_map = dict() if substitution_map is None else substitution_map + assert isinstance(substitution_map, dict) + output = None + for key, value in substitution_map.items(): + # FreeVariable instances may be of type contextlib._GeneratorContextManager + # when used inside a with statement. + pass # assert isinstance(key, TheoreticalObjct) ##### XXXXX # verify( # # # # # isinstance(value, ( # TheoreticalObjct, contextlib._GeneratorContextManager)), # 'The value component of this key/value pair in this ' # 'substitution map is # not an instance of TheoreticalObjct.', # key=key, value=value, # value_type=type(value), self2=self) # A formula relation cannot be replaced by # a simple-objct. # But a simple-object could be replaced by a formula, # if that formula "yields" such simple-objects. # TODO: Implement clever rules here # to avoid ill-formed formula, # or let the formula constructor do the work. # # assert type(key) == type(value) or isinstance( # value, FreeVariable) or # # # isinstance( # key, FreeVariable) # If these are formula, their arity must be # equal # to prevent the creation of an ill-formed formula. # NO, THIS IS WRONG. # TODO: Re-analyze this point. # assert not isinstance(key, Formula) or key.arity # == value.arity + + # Because the scope of variables is locked, + # the substituted formula must create "duplicates" of all variables. + variables_list = self.get_variable_ordered_set() + for x in variables_list: + if x not in substitution_map.keys(): + # Call declare_free_variable() instead of v() + # to explicitly manage variables scope locking. + x2 = self.universe_of_discourse.declare_free_variable(x.nameset.nameset) + substitution_map[x] = x2 + + # Now we may proceed with substitution. + if self in substitution_map: + return substitution_map[self] + elif isinstance(self, Formula): + # If both key / value are formulae, + # we must check for formula-equivalence, + # rather than python-object-equality. + for k, v in substitution_map.items(): + if self.is_formula_syntactically_equivalent_to(k): + return v + + # If the formula itself is not matched, + # the next step consist in decomposing it + # into its constituent parts, i.e. relation and parameters, + # to apply the substitution operation on these. + relation = self.relation.substitute(substitution_map=substitution_map, + target_theory=target_theory, lock_variable_scope=lock_variable_scope) + parameters = tuple( + p.substitute(substitution_map=substitution_map, target_theory=target_theory, + lock_variable_scope=False) for p in self.parameters) + phi = self.universe_of_discourse.f(relation, *parameters, + lock_variable_scope=lock_variable_scope) + return phi + else: + return self + + def iterate_relations(self, include_root: bool = True): + """Iterate through this and all the theoretical-objcts it contains recursively, providing + they are relations.""" + return (r for r in self.iterate_theoretical_objcts_references(include_root=include_root) if + is_in_class(r, classes.relation)) + + def iterate_theoretical_objcts_references(self, include_root: bool = True, + visited: (None, set) = None): + """Iterate through this and all the theoretical-objcts it contains recursively. + """ + visited = set() if visited is None else visited + if include_root and self not in visited: + yield self + visited.update({self}) + + def contains_theoretical_objct(self, o: TheoreticalObject): + """Return True if o is in this theory's hierarchy, False otherwise. + """ + return o in self.iterate_theoretical_objcts_references(include_root=True) + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, None, None]: + pass + + def export_interactive_graph(self, output_path: str, pyvis_graph: (None, pyvis.network) = None, + encoding: (None, Encoding) = None, label_wrap_size: (None, int) = None, + title_wrap_size: (None, int) = None) -> None: + """Export a theoretical-object as a statement dependency graph in an HTML page with + visJS, thanks to the pyvis package.""" + pyvis_graph = prioritize_value(pyvis_graph, pyvis.network.Network(directed=True)) + label_wrap_size = prioritize_value(label_wrap_size, pyvis_configuration.label_wrap_size) + title_wrap_size = prioritize_value(title_wrap_size, pyvis_configuration.title_wrap_size) + pyvis_graph: pyvis.network.Network + node_id = self.rep_symbol(encoding=encodings.plaintext) + if node_id not in pyvis_graph.get_nodes(): + kwargs = None + if is_in_class(self, classes.axiom_inclusion): + self: AxiomInclusion + kwargs = pyvis_configuration.axiom_inclusion_args + ref = '' if self.ref is None else f'({self.rep_ref(encoding=encoding)}) ' + bold = True if ref != '' else False + node_label = f'{self.rep_symbol(encoding=encoding)} {ref}: ' \ + f'{self.rep_natural_language(encoding=encoding)}' + if label_wrap_size is not None: + node_label = '\n'.join(textwrap.wrap(text=node_label, width=label_wrap_size)) + pyvis_graph.add_node(node_id, label=node_label, **kwargs) + elif is_in_class(self, classes.definition_inclusion): + self: DefinitionInclusion + kwargs = pyvis_configuration.definition_inclusion_args + ref = '' if self.ref is None else f'({self.rep_ref(encoding=encoding)}) ' + bold = True if ref != '' else False + node_label = f'{self.rep_symbol(encoding=encoding)} {ref}: ' \ + f'{self.rep_natural_language(encoding=encoding)}' + if label_wrap_size is not None: + node_label = '\n'.join(textwrap.wrap(text=node_label, width=label_wrap_size)) + pyvis_graph.add_node(node_id, label=node_label, **kwargs) + elif is_in_class(self, classes.inferred_proposition): + self: InferredStatement + kwargs = pyvis_configuration.inferred_statement_args + ref = '' if self.ref is None else f'({self.rep_ref(encoding=encoding)}) ' + bold = True if ref != '' else False + node_label = f'{self.rep_symbol(encoding=encoding)} {ref}: ' \ + f'{self.rep_formula(encoding=encoding)}' + if label_wrap_size is not None: + node_label = '\n'.join(textwrap.wrap(text=node_label, width=label_wrap_size)) + node_title = self.rep_report(encoding=encoding, proof=True) + if title_wrap_size is not None: + node_title = '\n'.join(textwrap.wrap(text=node_title, width=title_wrap_size)) + pyvis_graph.add_node(node_id, label=node_label, title=node_title, + labelHighlightBold=bold, **kwargs) + for parameter in self.parameters: + if isinstance(parameter, tuple): + # variable-substitution uses a tuple as parameter. + for x in parameter: + x.export_interactive_graph(output_path=None, pyvis_graph=pyvis_graph, + encoding=encoding, label_wrap_size=label_wrap_size, + title_wrap_size=title_wrap_size) + parameter_node_id = x.rep_symbol(encoding=encodings.plaintext) + if parameter_node_id in pyvis_graph.get_nodes(): + pyvis_graph.add_edge(source=parameter_node_id, to=node_id) + else: + parameter.export_interactive_graph(output_path=None, + pyvis_graph=pyvis_graph, encoding=encoding, + label_wrap_size=label_wrap_size, title_wrap_size=title_wrap_size) + parameter_node_id = parameter.rep_symbol(encoding=encodings.plaintext) + if parameter_node_id in pyvis_graph.get_nodes(): + pyvis_graph.add_edge(source=parameter_node_id, to=node_id) + if is_in_class(self, classes.theory_elaboration): + self: TheoryElaborationSequence + for statement in self.statements: + # Bug fix: sections should not be TheoreticalObjects but DecorativeObjects! + if not isinstance(statement, Section): + statement.export_interactive_graph(output_path=None, pyvis_graph=pyvis_graph, + encoding=encoding, label_wrap_size=label_wrap_size, + title_wrap_size=title_wrap_size) + if output_path is not None: + pyvis_graph.options.physics.solver = 'barnesHut' + pyvis_graph.options.physics.barnesHut.gravitationalConstant = -5900 + pyvis_graph.options.physics.barnesHut.centralGravity = 0.35 + pyvis_graph.options.physics.barnesHut.springLength = 50 + pyvis_graph.options.physics.barnesHut.springConstant = 0.08 + pyvis_graph.options.physics.barnesHut.damping = 0.38 + pyvis_graph.options.physics.barnesHut.avoidOverlap = 0.49 + pyvis_graph.toggle_physics(True) + # pyvis_graph.show_buttons(filter_=['physics']) + pyvis_graph.save_graph(output_path) + + def compose_formula(self) -> collections.abc.Generator[Composable, None, None]: + yield from self.compose_symbol() + + def rep_formula(self, encoding: (None, Encoding) = None, expand: (None, bool) = None) -> str: + """Return a formula representation, which is equivalent to a symbolic representation for + non-formula objects. + """ + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_formula(), encoding=encoding) + + +def substitute_xy(o, x, y): + """Return the result of a *substitution* of x with y on o.""" + verify(isinstance(o, TheoreticalObject), msg='o is not a TheoreticalObjct.') + verify(isinstance(x, TheoreticalObject), msg='x is not a TheoreticalObjct.') + verify(isinstance(y, TheoreticalObject), msg='y is not a TheoreticalObjct.') + return o.substitute(substitution_map={x: y}) + + +class FreeVariable(TheoreticalObject): + """ + + + Defining properties: + -------------------- + The defining-properties of a free-variable are: + * Being a free-variable + * The scope-formula of the free-variable + * The index-position of the free-variable in its scope-formula + """ + + class Status(repm.ValueName): + pass + + scope_initialization_status = Status('scope_initialization_status') + closed_scope_status = Status('closed_scope_status') + + def __init__(self, u: UniverseOfDiscourse, status: (None, FreeVariable.Status) = None, + scope: (None, Formula, typing.FrozenSet[Formula]) = None, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None) -> None: + echo = prioritize_value(echo, configuration.echo_free_variable_declaration, + configuration.echo_default, False) + status = prioritize_value(status, FreeVariable.scope_initialization_status) + scope = prioritize_value(scope, frozenset()) + scope = {scope} if isinstance(scope, Formula) else scope + verify(isinstance(scope, frozenset), + 'The scope of a FreeVariable must be of python type frozenset.') + verify(isinstance(status, FreeVariable.Status), + 'The status of a FreeVariable must be of the FreeVariable.Status type.') + self._status = status + self._scope = scope + assert isinstance(u, UniverseOfDiscourse) + if symbol is None: + symbol = configuration.default_free_variable_symbol + index = u.index_symbol(symbol=symbol) + if isinstance(symbol, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + symbol = StyledText(plaintext=symbol, text_style=text_styles.serif_bold) + if index is None and auto_index: + index = u.index_symbol(symbol=symbol) + super().__init__(universe_of_discourse=u, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, nameset=nameset, echo=False) + # self.universe_of_discourse.cross_reference_variable(x=self) + super()._declare_class_membership(declarative_class_list.free_variable) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='free-variable') + + def echo(self): + self.rep_report() + + @property + def scope(self): + """The scope of a free variable is the set of the formula where the variable is used. + + :return: + """ + return self._scope + + def lock_scope(self): + # Support for the with pythonic syntax + # Start building variable scope + verify(self._status == FreeVariable.scope_initialization_status, + 'The scope of an instance of FreeVariable can only be locked if it is open.') + # Close variable scope + self._status = FreeVariable.closed_scope_status + + def extend_scope(self, phi): + # Support for the with pythonic syntax + # Start building variable scope + verify(self._status == FreeVariable.scope_initialization_status, + 'The scope of an instance of FreeVariable can only be extended if it is open.') + # Close variable scope + verify(isinstance(phi, Formula), + 'Scope extensions of FreeVariable must be of type Formula.') + self._scope = self._scope.union({phi}) + + def is_masked_formula_similar_to(self, o2, mask, _values): + # TODO: Re-implement this + assert isinstance(o2, TheoreticalObject) + if isinstance(o2, FreeVariable): + if o2 in mask: + # o2 is a variable, and it is present in the mask. + # first, we must check if it is already in the dictionary of values. + if o2 in _values: + # the value is already present in the dictionary. + known_value = _values[o2] + if known_value is self: + # the existing value matches the newly observed value. + # until there, masked-formula-similitude is preserved. + return True, _values + else: + # the existing value does not match the newly observed value. + # masked-formula-similitude is no longer preserved. + return False, _values + else: + # the value is not present in the dictionary. + # until there, masked-formula-similitude is preserved. + _values[o2] = self + return True, _values + if not isinstance(o2, SimpleObjct): + # o1 (self) is a simple-objct, and o2 is something else. + # in consequence, masked-formula-similitude is no longer preserved. + return False, _values + # o2 is not a variable. + return self.is_formula_syntactically_equivalent_to(o2), _values + + def rep_report(self, encoding: (None, Encoding) = None, proof: (None, bool) = None): + return f'Let {self.rep_name(encoding=encoding)} be a free-variable in ' \ + f'{self.universe_of_discourse.rep_name(encoding=encoding)}' + '\n' + + +class Formula(TheoreticalObject): + """A formula is a theoretical-objct. + It is also a tuple (U, r, p1, p1, p2, ..., pn) + + Definition + ---------- + A formula 𝜑 is a tuple (◆, 𝒳) where: + * ◆ is a relation. + * 𝒳 is a finite tuple of parameters + whose elements are theoretical-objects, possibly formulae. + + Defining properties: + -------------------- + The defining-properties of a formula are: + * Being a formula. + * A relation r. + * A finite tuple of parameters. + + To do list + ---------- + - TODO: Question: supporting relation as subformula, where the subformula + would be a function whose domain would be the class of relations, + could be an interesting approach to extend the expressiveness of + Punctilious as a formal language. Consider this in later developments. + + Attributes + ---------- + relation : (Relation, FreeVariable) + + """ + + function_call = repm.ValueName('function-call') + infix = repm.ValueName('infix-operator') + prefix = repm.ValueName('prefix-operator') + postfix = repm.ValueName('postfix-operator') + + def __init__(self, relation: (Relation, FreeVariable), parameters: tuple, + universe_of_discourse: UniverseOfDiscourse, nameset: (None, str, NameSet) = None, + lock_variable_scope: bool = False, dashed_name: (None, str, DashedName) = None, + echo: (None, bool) = None): + """ + """ + echo = prioritize_value(echo, configuration.echo_formula_declaration, + configuration.echo_default, False) + self.free_variables = dict() # TODO: Check how to make dict immutable after construction. + # self.formula_index = theory.crossreference_formula(self) + if nameset is None: + symbol = configuration.default_formula_symbol + index = universe_of_discourse.index_symbol(symbol=symbol) + nameset = NameSet(symbol=symbol, index=index) + if isinstance(nameset, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + symbol = StyledText(plaintext=nameset, text_style=text_styles.serif_italic) + index = universe_of_discourse.index_symbol(symbol=symbol) + nameset = NameSet(symbol=symbol, index=index) + self.relation = relation + parameters = parameters if isinstance(parameters, tuple) else tuple([parameters]) + self.arity = len(parameters) + verify(self.arity > 0, + 'The number of parameters in this formula is zero. 0-ary relations are currently not ' + 'supported.') + + verify(is_in_class(relation, classes.free_variable) or self.relation.arity == self.arity, + 'The arity of this formula''s relation is inconsistent with the number of parameters ' + 'in the formula.', relation=self.relation, parameters=parameters) + self.parameters = parameters + super().__init__(nameset=nameset, universe_of_discourse=universe_of_discourse, echo=False) + super()._declare_class_membership(declarative_class_list.formula) + universe_of_discourse.cross_reference_formula(self) + verify( + is_in_class(relation, classes.relation) or is_in_class(relation, classes.free_variable), + 'The relation of this formula is neither a relation, nor a ' + 'free-variable.', formula=self, relation=relation) + verify(relation.universe_of_discourse is self.universe_of_discourse, + 'The universe_of_discourse of the relation of this formula is ' + 'distint from the formula unierse_of_disourse.', formula=self, relation=relation) + self.cross_reference_variables() + for p in parameters: + verify(is_in_class(p, classes.theoretical_objct), 'p is not a theoretical-objct.', + slf=self, p=p) + if is_in_class(p, classes.free_variable): + p.extend_scope(self) + if lock_variable_scope: + self.lock_variable_scope() + if echo: + self.echo() + + def __repr__(self): + return self.rep(expand=True) + + def __str__(self): + return self.rep(expand=True) + + def crossreference_variable(self, x): + """During construction, cross-reference a free-variable 𝓍 + with its parent formula if it is not already cross-referenced, + and return its 0-based index in Formula.free_variables.""" + assert isinstance(x, FreeVariable) + x.formula = self if x.formula is None else x.formula + assert x.formula is self + if x not in self.free_variables: + self.free_variables = self.free_variables + tuple([x]) + return self.free_variables.index(x) + + def cross_reference_variables(self): + # TODO: Iterate through formula filtering on variable placeholders. + # TODO: Call cross_reference_variable on every variable placeholder. + pass # assert False + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def is_proposition(self): + """Tell if the formula is a logic-proposition. + + This property is directly inherited from the formula-is-proposition + attribute of the formula's relation.""" + return self.relation.signal_proposition + + def is_formula_syntactically_equivalent_to(self, o2: TheoreticalObject) -> bool: + """Return true if ⌜self⌝ is formula-syntactically-equivalent to ⌜o2⌝. + + Parameters: + ----------- + o2 : TheoreticalObject + The theoretical-object with which to verify formula-equivalence. + + """ + # if o2 is a formula-statement, retrieve its formula. + o2 = o2.valid_proposition if is_in_class(o2, classes.formula_statement) else o2 + if self is o2: + # Trivial case. + return True + if not isinstance(o2, Formula): + return False + if not self.relation.is_formula_syntactically_equivalent_to(o2.relation): + return False + # Arities are necessarily equal. + for i in range(len(self.parameters)): + if not self.parameters[i].is_formula_syntactically_equivalent_to(o2.parameters[i]): + return False + return True + + def iterate_theoretical_objcts_references(self, include_root: bool = True, + visited: (None, set) = None): + """Iterate through this and all the theoretical-objcts it contains recursively.""" + visited = set() if visited is None else visited + if include_root and self not in visited: + yield self + visited.update({self}) + if self.relation not in visited: + yield self.relation + visited.update({self.relation}) + yield from self.relation.iterate_theoretical_objcts_references(include_root=False, + visited=visited) + for parameter in set(self.parameters).difference(visited): + yield parameter + visited.update({parameter}) + yield from parameter.iterate_theoretical_objcts_references(include_root=False, + visited=visited) + + def list_theoretical_objcts_recursively_OBSOLETE(self, ol: (None, frozenset) = None, + extension_limit: (None, Statement) = None): + """Return a python frozenset of this formula and all theoretical_objcts it contains.""" + ol = frozenset() if ol is None else ol + ol = ol.union({self}) + if self.relation not in ol: + ol = ol.union(self.relation.list_theoretical_objcts_recursively_OBSOLETE(ol=ol)) + for p in self.parameters: + if p not in ol: + ol = ol.union(p.list_theoretical_objcts_recursively_OBSOLETE(ol=ol)) + return ol + + def lock_variable_scope(self): + """Variable scope must be locked when the formula construction + is completed.""" + variables_list = self.get_variable_ordered_set() + for x in variables_list: + x.lock_scope() + + def rep(self, encoding: (None, Encoding) = None, expand: (None, bool) = None) -> str: + expand = True if expand is None else expand + assert isinstance(expand, bool) + if expand: + return self.rep_formula(encoding=encoding, expand=expand) + else: + return super().rep(encoding=encoding, expand=expand) + + def compose_function_call(self) -> collections.abc.Generator[Composable, None, None]: + global text_dict + yield from self.relation.compose_formula() + yield text_dict.open_parenthesis + first_item = True + for p in self.parameters: + if not first_item: + yield text_dict.formula_parameter_separator + yield from p.compose_formula() + first_item = False + yield text_dict.close_parenthesis + + def rep_function_call(self, encoding: (None, Encoding) = None, + expand: (None, bool) = None) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_function_call(), encoding=encoding) + + def compose_infix_operator(self) -> collections.abc.Generator[Composable, None, None]: + verify(assertion=self.relation.arity == 2, + msg='Relation is not binary, formula-representation-style is infix.', + relation=self.relation, slf=self) + global text_dict + yield text_dict.open_parenthesis + yield from self.parameters[0].compose_formula() + yield text_dict.space + yield from self.relation.compose_formula() + yield text_dict.space + yield from self.parameters[1].compose_formula() + yield text_dict.close_parenthesis + + def rep_infix_operator(self, encoding: (None, Encoding) = None, expand=(None, bool), + **kwargs) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_infix_operator(), encoding=encoding) + + def compose_postfix_operator(self) -> collections.abc.Generator[Composable, None, None]: + verify(assertion=len(self.parameters) == 1, + msg='Postfix-operator formula representation is used but arity is not equal to 1', + slf=self) + global text_dict + yield text_dict.open_parenthesis + yield from self.parameters[0].compose_formula() + yield text_dict.close_parenthesis + yield from self.relation.compose_formula() + + def rep_postfix_operator(self, encoding: (None, Encoding) = None, expand=None) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_postfix_operator(), encoding=encoding) + + def compose_prefix_operator(self) -> collections.abc.Generator[Composable, None, None]: + verify(assertion=len(self.parameters) == 1, + msg='Prefix-operator formula representation is used but arity is not equal to 1', + slf=self) + global text_dict + yield from self.relation.compose_formula() + yield text_dict.open_parenthesis + yield from self.parameters[0].compose_formula() + yield text_dict.close_parenthesis + + def rep_as_prefix_operator(self, encoding: (None, Encoding) = None, expand=None) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_prefix_operator(), encoding=encoding) + + def compose_formula(self) -> collections.abc.Generator[Composable, None, None]: + if is_in_class(self.relation, classes.free_variable): + # If the relation of this formula is a free-variable, + # it has no arity, neither a representation-mode. + # In this situation, our design-choice is to + # fallback on the function-call representation-mode. + # In future developments, we may choose to allow + # the "decoration" of free-variables with arity, + # and presentation-mode to improve readability. + yield from self.compose_function_call() + else: + match self.relation.formula_rep: + case Formula.function_call: + yield from self.compose_function_call() + case Formula.infix: + yield from self.compose_infix_operator() + case Formula.prefix: + yield from self.compose_prefix_operator() + case Formula.postfix: + yield from self.compose_postfix_operator() + case _: + # Fallback notation. + yield from self.compose_function_call() + + def rep_formula(self, encoding: (None, Encoding) = None, expand: bool = True) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_formula(), encoding=encoding) + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='formula') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, None, None]: + global text_dict + yield text_dict.let + yield text_dict.space + yield from self.compose_symbol() + yield text_dict.space + yield text_dict.be + yield text_dict.space + yield text_dict.the + yield text_dict.space + yield from self.compose_class() + yield text_dict.space + yield from self.compose_formula() + yield text_dict.space + yield text_dict.in2 + yield text_dict.space + yield from self.universe_of_discourse.compose_symbol() + yield text_dict.period + + +class SimpleObjctDict(collections.UserDict): + """A dictionary that exposes well-known simple-objcts as properties. + + """ + + def __init__(self, u: UniverseOfDiscourse): + self.u = u + super().__init__() + # Well-known objects + self._falsehood = None + self._relation = None + self._truth = None + + def declare(self, symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None) -> SimpleObjct: + """Declare a new simple-objct in this universe-of-discourse. + """ + return SimpleObjct(symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, nameset=nameset, + universe_of_discourse=self.u, echo=echo) + + @property + def fals(self): + """The well-known falsehood simple-objct. + + Unabridged property: universe_of_discourse.simple_objcts.falsehood + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.falsehood + + @property + def falsehood(self): + """The well-known falsehood simple-objct. + + Abridged property: u.o.fals + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._falsehood is None: + self._falsehood = self.declare(nameset=NameSet( + symbol=StyledText(unicode='⊥', latex='\\bot', plaintext='false', + text_style=text_styles.serif_normal), name=ComposableText(plaintext='false'), + explicit_name=ComposableText(plaintext='falsehood'), index=None)) + return self._falsehood + + @property + def relation(self): + """The :ref:`relation` :ref:`meta-object`. + + TODO: relation meta-object: Move this to a specialized class and dictionary? + """ + if self._relation is None: + self._relation = self.declare(symbol='relation', name='relation', auto_index=False, + abridged_name='rel.') + return self._relation + + @property + def tru(self): + """The well-known truth simple-objct. + + Unabridged property: universe_of_discourse.simple_objcts.truth + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.truth + + @property + def truth(self): + """The well-known truth simple-objct. + + Abridged property: u.o.tru + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._truth is None: + self._truth = self.declare(nameset=NameSet( + symbol=StyledText(unicode='⊤', latex='\\top', plaintext='true', + text_style=text_styles.serif_normal), name=ComposableText(plaintext='true'), + explicit_name=ComposableText(plaintext='truth'), index=None)) + return self._truth + + +class ParagraphHeader(repm.ValueName): + """TODO: Replace this with ComposableText""" + + def __init__(self, name, symbol_base, natural_name, abridged_name): + self.symbol_base = symbol_base + if isinstance(natural_name, str): + natural_name = SansSerifBold(natural_name) + self.natural_name = natural_name + if isinstance(abridged_name, str): + abridged_name = SansSerifBold(abridged_name) + self.abridged_name = abridged_name + super().__init__(name) + + def __repr__(self): + return self.rep(encoding=encodings.plaintext) + + def __str__(self): + return self.rep(encoding=encodings.plaintext) + + def rep(self, encoding: (None, Encoding) = None, cap: (None, bool) = None, + expand: (None, bool) = None): + # TODO: Implement encoding + return self.natural_name + + +class ParagraphHeaders(repm.ValueName): + # axiom = TitleCategory('axiom', 's', 'axiom', 'axiom') + axiom_declaration = ParagraphHeader('axiom_declaration', 'a', SansSerifBold('axiom'), 'axiom') + axiom_inclusion = ParagraphHeader('axiom_inclusion', 's', SansSerifBold('axiom'), 'axiom') + axiom_schema_declaration = ParagraphHeader('axiom_schema_declaration', 'a', + SansSerifBold('axiom schema'), 'axiom schema') + axiom_schema_inclusion = ParagraphHeader('axiom_schema_inclusion', 's', + SansSerifBold('axiom schema'), 'axiom schema') + corollary = ParagraphHeader('corollary', 's', 'corollary', 'cor.') + definition_declaration = ParagraphHeader('definition_declaration', 'd', + SansSerifBold('definition'), 'def.') + definition_inclusion = ParagraphHeader('definition_inclusion', 's', SansSerifBold('definition'), + 'def.') + hypothesis = ParagraphHeader('hypothesis', 'H', 'hypothesis', 'hyp.') + inference_rule_declaration = ParagraphHeader('inference_rule', 'I', 'inference rule', + 'inference rule') + inference_rule_inclusion = ParagraphHeader('inference_rule_inclusion', 'I', 'inference rule', + 'inference rule') + inferred_proposition = ('inferred_proposition', 's', 'inferred-proposition') + lemma = ParagraphHeader('lemma', 's', 'lemma', 'lem.') + proposition = ParagraphHeader('proposition', 's', 'proposition', 'prop.') + relation_declaration = ParagraphHeader('relation_declaration', 's', 'proposition', 'prop.') + theorem = ParagraphHeader('theorem', 's', 'theorem', 'thrm.') + theory_elaboration_sequence = ParagraphHeader('theory_elaboration_sequence', 't', + 'theory elaboration sequence', 'theo.') + informal_definition = ParagraphHeader('informal definition', + StyledText(plaintext='note', unicode='🗅'), 'informal definition', 'inf. def.') + comment = ParagraphHeader('comment', StyledText(plaintext='note', unicode='🗅'), 'comment', + 'cmt.') + note = ParagraphHeader('note', StyledText(plaintext='note', unicode='🗅'), 'note', 'note') + remark = ParagraphHeader('remark', StyledText(plaintext='note', unicode='🗅'), 'remark', 'rmrk.') + warning = ParagraphHeader('warning', StyledText(plaintext='warning', unicode='🗅'), 'warning', + 'warning') + # Special categories + uncategorized = ParagraphHeader('uncategorized', 's', 'uncategorized', 'uncat.') + informal_assumption = ParagraphHeader('informal assumption', + StyledText(plaintext='informal assumption', unicode='🗅'), 'informal assumption', + 'informal assumption') + informal_proposition = ParagraphHeader('informal proposition', + StyledText(plaintext='informal proposition', unicode='🗅'), 'informal proposition', + 'informal proposition') + informal_proof = ParagraphHeader('informal proof', + StyledText(plaintext='informal proof', unicode='🗅'), 'informal proof', 'informal proof') + + +paragraph_headers = ParagraphHeaders('paragraph_headers') + + +class Statement(TheoreticalObject): + """ + + Definition + ---------- + Given a theory 𝒯, a statement 𝒮 is a theoretical-object that: + * announces some truth in 𝒯. + + There are three broad categories of statements: + - contentual-statements (e.g. axiom-inclusion, definition-inclusion) + - formula-statements + - non-theoretical statements (decorative) + + For 𝒯 to be valid, all statements in 𝒯 must be valid. + For 𝒯 to be consistent, all statements in 𝒯 must be consistent. + etc. + """ + + def __init__(self, theory: TheoryElaborationSequence, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + paragraph_header: (None, ParagraphHeader) = None, echo: (None, bool) = None): + self._theory = theory + echo = prioritize_value(echo, configuration.echo_statement, configuration.echo_default, + False) + universe_of_discourse = theory.universe_of_discourse + self.statement_index = theory.crossreference_statement(self) + self._paragraph_header = paragraph_header + namespace = self._theory # TODO: Cross-referencing the theory symbol as the nameset of + # the statement is ugly, there's something wrong with the data model, correct it. + super().__init__(universe_of_discourse=universe_of_discourse, symbol=symbol, index=index, + auto_index=auto_index, namespace=namespace, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=paragraph_header, ref=ref, subtitle=subtitle, nameset=nameset, + echo=echo) + super()._declare_class_membership(declarative_class_list.statement) + if echo: + self.echo() + + @property + def paragraph_header(self) -> ParagraphHeader: + """The statement-category assigned to this statement. + + :return: + """ + return self._paragraph_header + + @abc.abstractmethod + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + raise NotImplementedError('This is an abstract method.') + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def t(self) -> TheoryElaborationSequence: + """The theory-elaboration-sequence that contains this statement. + + Unabridged property: statement.theory""" + return self.theory + + @property + def theory(self) -> TheoryElaborationSequence: + """The theory-elaboration-sequence that contains this statement. + + Abridged property: s.t + + This property may only be set once. In effect, moving statements + between package would lead to unstable package.""" + return self._theory + + @theory.setter + def theory(self, t: TheoryElaborationSequence): + verify(self._theory is None, '⌜theory⌝ property may only be set once.', slf=self, + slf_theory=self._theory, t=t) + self._theory = t + + @property + def u(self) -> UniverseOfDiscourse: + """The universe-of-discourse where this statement is declared. + + Unabridged property: statement.universe_of_discourse""" + return self.universe_of_discourse + + @property + def universe_of_discourse(self) -> UniverseOfDiscourse: + """The universe-of-discourse where this statement is declared. + + Abridged property: s.u""" + return self._universe_of_discourse + + +class AxiomDeclaration(TheoreticalObject): + """The Axiom pythonic class models the elaboration of a _contentual_ _axiom_ in a + _universe-of-discourse_. + + """ + + def __init__(self, natural_language: (str, StyledText), u: UniverseOfDiscourse, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + """ + + :param natural_language: The axiom's content in natural-language. + :param u: The universe-of-discourse. + :param nameset: + :param echo: + """ + echo = prioritize_value(echo, configuration.echo_axiom_declaration, + configuration.echo_default, False) + if isinstance(natural_language, str): + natural_language = natural_language.strip() + verify(natural_language != '', + 'Parameter natural-language is an empty string (after trimming).') + natural_language = SansSerifItalic(natural_language) + self._natural_language = natural_language + paragraph_header = prioritize_value(paragraph_header, paragraph_headers.axiom_declaration) + verify( + assertion=paragraph_header is paragraph_headers.axiom_declaration or paragraph_header is paragraph_headers.axiom_schema_declaration, + msg='paragraph-header must be either axiom-declaration, or axiom-schema-declaration.', + paragraph_header=paragraph_header) + if nameset is None and symbol is None: + symbol = configuration.default_axiom_declaration_symbol + super().__init__(universe_of_discourse=u, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, + paragraph_header=paragraph_header, nameset=nameset, echo=False) + super()._declare_class_membership(declarative_class_list.axiom) + u.cross_reference_axiom(self) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='axiom') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_axiom_declaration(o=self) + return output + + def compose_natural_language(self) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield text_dict.open_quasi_quote + yield self.natural_language + yield text_dict.close_quasi_quote + return True + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def natural_language(self) -> StyledText: + return self._natural_language + + def rep_natural_language(self, encoding: (None, Encoding) = None, wrap: bool = None) -> str: + return rep_composition(composition=self.compose_natural_language(), encoding=encoding, + wrap=wrap) + + +class AxiomInclusion(Statement): + """An axiom-inclusion (aka axiom-postulation) is defined as a pair (𝑡,𝑎), + where 𝑡 is a theory-elaboration-sequence and 𝑎 is a contentual axiom. + """ + + def __init__(self, a: AxiomDeclaration, t: TheoryElaborationSequence, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + """Include (postulate) an axiom in a theory-elaboration-sequence. + """ + echo = prioritize_value(echo, configuration.echo_axiom_inclusion, + configuration.echo_default, False) + self._axiom = a + t.crossreference_definition_endorsement(self) + paragraph_header = prioritize_value(paragraph_header, paragraph_headers.axiom_inclusion) + verify( + assertion=paragraph_header is paragraph_headers.axiom_inclusion or paragraph_header is paragraph_headers.axiom_schema_inclusion, + msg='paragraph-header must be either axiom-inclusion, or axiom-schema-inclusion.', + paragraph_header=paragraph_header) + if nameset is None and symbol is None: + symbol = configuration.default_axiom_inclusion_symbol + super().__init__(theory=t, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=paragraph_header, ref=ref, + subtitle=subtitle, nameset=nameset, echo=False) + super()._declare_class_membership(declarative_class_list.axiom_inclusion) + if echo: + self.echo() + + @property + def a(self) -> AxiomDeclaration: + """The axiom of an axiom-inclusion. + + Unabridged property: axiom_inclusion.axiom""" + return self.axiom + + @property + def axiom(self) -> AxiomDeclaration: + """The axiom of an axiom-inclusion. + + Abridged property: a.a""" + return self._axiom + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='axiom-inclusion') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_axiom_inclusion_report(o=self, proof=proof) + return output + + def rep_natural_language(self, encoding: (None, Encoding) = None, wrap: bool = True) -> str: + return self._axiom.rep_natural_language(encoding=encoding, wrap=wrap) + + +class InferenceRuleInclusion(Statement): + """An inference-rule inclusion (aka inference-rule allowance) in the current theory-elaboration. + """ + + def __init__(self, i: InferenceRuleDeclaration, t: TheoryElaborationSequence, + symbol: (None, str, StyledText) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None, + proof: (None, bool) = None): + """Include (aka allow) an inference-rule in a theory-elaboration. + """ + self._inference_rule = i + paragraph_header = paragraph_headers.inference_rule_inclusion + if symbol is None: + symbol = configuration.default_inference_rule_inclusion_symbol if symbol is None else symbol + index = t.universe_of_discourse.index_symbol(symbol=symbol) + super().__init__(theory=t, paragraph_header=paragraph_headers, symbol=symbol, index=index, + nameset=nameset, echo=False) + t.crossreference_inference_rule_inclusion(self) + super()._declare_class_membership(declarative_class_list.inference_rule_inclusion) + echo = prioritize_value(echo, configuration.echo_inference_rule_inclusion, + configuration.echo_inclusion, configuration.echo_default, False) + if echo: + proof = prioritize_value(proof, configuration.echo_proof, True) + repm.prnt(self.rep_report(proof=proof)) + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='inference-rule') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_inference_rule_inclusion_report(i=self, + proof=proof) + return output + + def infer_formula(self, *args, echo: (None, bool) = None): + """ + + :param args: + :param echo: + :return: + """ + return self.inference_rule.infer_formula(*args, t=self.theory, echo=echo) + + def infer_statement(self, *args, nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """ + + :param args: + :param echo: + :return: + """ + return self.inference_rule.infer_statement(*args, t=self.theory, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + def verify_args(self, *args): + """ + + :param args: + :return: + """ + return self.inference_rule.verify_args(*args, t=self.theory) + + @property + def i(self): + """ + + :return: + """ + return self.inference_rule + + @property + def inference_rule(self): + return self._inference_rule + + def verify_compatibility(self, *args): + return self.inference_rule.verify_args(*args, t=self.theory) + + +class DefinitionDeclaration(TheoreticalObject): + """The Definition pythonic class models the elaboration of a _contentual_ _definition_ in a + _universe-of-discourse_. + + """ + + def __init__(self, natural_language: str, u: UniverseOfDiscourse, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None): + """ + + :param natural_language: The definition's content in natural-language. + :param u: The universe-of-discourse. + :param nameset: + :param echo: + """ + echo = prioritize_value(echo, configuration.echo_definition_declaration, + configuration.echo_default, False) + if isinstance(natural_language, str): + natural_language = natural_language.strip() + verify(natural_language != '', + 'Parameter natural-language is an empty string (after trimming).') + natural_language = SansSerifItalic(natural_language) + self._natural_language = natural_language + cat = paragraph_headers.definition_declaration + if nameset is None and symbol is None: + symbol = configuration.default_definition_declaration_symbol + super().__init__(universe_of_discourse=u, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=cat, ref=ref, subtitle=subtitle, + nameset=nameset, echo=False) + super()._declare_class_membership(declarative_class_list.definition) + u.cross_reference_definition(self) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='definition') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_definition_declaration(o=self) + return output + + def compose_natural_language(self) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield text_dict.open_quasi_quote + yield self.natural_language + yield text_dict.close_quasi_quote + return True + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def natural_language(self) -> (None, str): + """The content of the axiom in natural-language.""" + return self._natural_language + + def rep_natural_language(self, encoding: (None, Encoding) = None, wrap: bool = None) -> str: + return rep_composition(composition=self.compose_natural_language(), encoding=encoding, + wrap=wrap) + + +class DefinitionInclusion(Statement): + """A definition-endorsement in the current theory-elaboration. + """ + + def __init__(self, d: DefinitionDeclaration, t: TheoryElaborationSequence, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None): + """Endorsement (aka include, endorse) an definition in a theory-elaboration. + """ + echo = prioritize_value(echo, configuration.echo_definition_inclusion, + configuration.echo_default, False) + self._definition = d + t.crossreference_definition_endorsement(self) + cat = paragraph_headers.definition_inclusion + if nameset is None and symbol is None: + symbol = configuration.default_definition_inclusion_symbol + super().__init__(theory=t, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=cat, ref=ref, subtitle=subtitle, + nameset=nameset, echo=False) + super()._declare_class_membership(declarative_class_list.definition_inclusion) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='definition-inclusion') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_definition_inclusion_report(o=self, + proof=proof) + return output + + @property + def definition(self): + return self._definition + + def echo(self): + repm.prnt(self.rep_report()) + + def rep_natural_language(self, encoding: (None, Encoding) = None, wrap: bool = True) -> str: + return self._definition.rep_natural_language(encoding=encoding, wrap=wrap) + + +class FormulaStatement(Statement): + """ + + Definition: + ----------- + An formula-statement is a statement that expresses the validity of a formula in the parent + theory. + + To do list + ---------- + - TODO: Make FormulaStatement an abstract class + + """ + + def __init__(self, theory: TheoryElaborationSequence, valid_proposition: Formula, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + paragraphe_header: (None, ParagraphHeader) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_statement, configuration.echo_default, + False) + verify(theory.universe_of_discourse is valid_proposition.universe_of_discourse, + 'The universe-of-discourse of this formula-statement''s theory-elaboration is ' + 'inconsistent with the universe-of-discourse of the valid-proposition of that ' + 'formula-statement.') + universe_of_discourse = theory.universe_of_discourse + # Theory statements must be logical propositions. + valid_proposition = unpack_formula(valid_proposition) + verify(valid_proposition.is_proposition, + 'The formula of this statement is not propositional.') + # TODO: Check that all components of the hypothetical-proposition + # are elements of the source theory-branch. + self.valid_proposition = valid_proposition + self.statement_index = theory.crossreference_statement(self) + paragraphe_header = prioritize_value(paragraphe_header, paragraph_headers.proposition) + # TODO: Check that cat is a valid statement cat (prop., lem., cor., theorem) + if nameset is None and symbol is None: + symbol = configuration.default_statement_symbol + super().__init__(theory=theory, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, nameset=nameset, + paragraph_header=paragraphe_header, echo=False) + # manage theoretical-morphisms + self.morphism_output = None + if self.valid_proposition.relation.signal_theoretical_morphism: + # this formula-statement is a theoretical-morphism. + # it follows that this statement "yields" new statements in the theory. + assert self.valid_proposition.relation.implementation is not None + self.morphism_output = Morphism(theory=theory, source_statement=self) + super()._declare_class_membership(declarative_class_list.formula_statement) + if echo: + self.echo() + + def __repr__(self): + return self.rep(expand=True) + + def __str__(self): + return self.rep(expand=True) + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='formula-statement') + + @property + def parameters(self): + """The parameters of a formula-statement + are the parameters of the valid-proposition-formula it contains.""" + return self.valid_proposition.parameters + + @property + def relation(self): + """The relation of a formula-statement + is the relation of the valid-proposition-formula it contains.""" + return self.valid_proposition.relation + + def is_formula_syntactically_equivalent_to(self, o2: TheoreticalObject) -> bool: + """Return true if ⌜self⌝ is formula-syntactically-equivalent to ⌜o2⌝. + + Parameters: + ----------- + o2 : TheoreticalObject + The theoretical-object with which to verify formula-equivalence. + + """ + return self.valid_proposition.is_formula_syntactically_equivalent_to(o2) + + def iterate_theoretical_objcts_references(self, include_root: bool = True, + visited: (None, set) = None): + """Iterate through this and all the theoretical-objcts it contains recursively.""" + visited = set() if visited is None else visited + if include_root and self not in visited: + yield self + visited.update({self}) + if self.valid_proposition not in visited: + yield self.valid_proposition + visited.update({self.valid_proposition}) + yield from self.valid_proposition.iterate_theoretical_objcts_references( + include_root=False, visited=visited) + + def list_theoretical_objcts_recursively_OBSOLETE(self, ol: (None, frozenset) = None, + extension_limit: (None, Statement) = None): + """Return a python frozenset containing this formula-statement, + and all theoretical_objcts it contains. If a statement-limit is provided, + does not yield statements whose index is greater than the theoretical-objct.""" + ol = frozenset() if ol is None else ol + if extension_limit is not None and extension_limit.theory == self.theory and extension_limit.statement_index >= self.statement_index: + ol = ol.union({self}) + if self.valid_proposition not in ol: + ol = ol.union( + self.valid_proposition.list_theoretical_objcts_recursively_OBSOLETE(ol=ol, + extension_limit=extension_limit)) + return ol + + def rep(self, encoding: (None, Encoding) = None, expand: (None, bool) = None): + if expand: + return self.rep_formula(encoding=encoding, expand=expand) + else: + return super().rep(encoding=encoding, expand=expand) + + def rep_formula(self, encoding: (None, Encoding) = None, expand: (None, bool) = None): + return f'{self.valid_proposition.rep_formula(encoding=encoding, expand=expand)}' + + +class Morphism(FormulaStatement): + """ + + Definition: + ----------- + A theoretical-morphism-statement, or morphism for short, aka syntactic-operation is a + valid-proposition produced by a valid-morphism-formula. + + """ + + def __init__(self, source_statement, nameset=None, theory=None, paragraphe_header=None): + assert isinstance(theory, TheoryElaborationSequence) + assert isinstance(source_statement, FormulaStatement) + assert theory.contains_theoretical_objct(source_statement) + self.source_statement = source_statement + assert source_statement.valid_proposition.relation.signal_theoretical_morphism + self.morphism_implementation = source_statement.valid_proposition.relation.implementation + valid_proposition = self.morphism_implementation(self.source_statement.valid_proposition) + super().__init__(theory=theory, valid_proposition=valid_proposition, nameset=nameset, + paragraphe_header=paragraphe_header) + + def rep_report(self, proof: (None, bool) = None) -> str: + """Return a representation that expresses and justifies the statement. + + The representation is in two parts: + - The formula that is being stated, + - The justification for the formula.""" + output = f'{repm.serif_bold(self.rep_name())}: ' \ + f'{self.valid_proposition.rep_formula(expand=True)}' + if proof: + output = output + self.rep_subreport() + return output + f'\n' + + def rep_subreport(self): + """Return a representation that expresses and justifies the statement. + + The representation is in two parts: + - The formula that is being stated, + - The justification for the formula.""" + output = f'\n\t' \ + f'{repm.serif_bold("Derivation by theoretical-morphism / syntactic-operation")}' + output = output + f'\n\t' \ + f'{self.source_statement.valid_proposition.rep_formula(expand=True):<70} │ Follows from {repm.serif_bold(self.source_statement.rep_symbol())}.' + output = output + f'\n\t{self.valid_proposition.rep_formula(expand=True):<70} │ Output of ' \ + f'{repm.serif_bold(self.source_statement.valid_proposition.relation.rep_symbol())} morphism.' + return output + + +class PropositionStatement: + """ + Definition + ---------- + A proposition-statement 𝒮 is a tuple (𝒯, n, 𝜑, 𝒫) where: + * 𝒯 is a theory + * n is a natural number representing the unique position of 𝒮 in 𝒯 + * 𝜑 is a valid-formula in 𝒯 of the form ⟨◆, 𝒯, 𝜓⟩ where: + * ◆ is a theoretical-relation + * 𝜓 is a free-formula + * 𝒫 is a proof of 𝜑's validity in 𝒯 solely based on predecessors of 𝒮 + """ + + def __init__(self, theory, position, phi, proof): + assert isinstance(theory, TheoryElaborationSequence) + assert isinstance(position, int) and position > 0 + assert isinstance(phi, Formula) + assert theory.contains_theoretical_objct(phi) + assert isinstance(proof, Proof) + assert theory.contains_theoretical_objct(proof) + self.theory = theory + self.position = position + self.phi = phi + self.proof = proof + + +universe_of_discourse_symbol_indexes = dict() + + +def index_universe_of_discourse_symbol(base): + """Given a symbol-base S (i.e. an unindexed symbol), returns a unique integer n + such that (S, n) is a unique identifier for this UniverseOfDiscourse. + + :param base: The symbol-base. + :return: + """ + global universe_of_discourse_symbol_indexes + if base not in universe_of_discourse_symbol_indexes: + universe_of_discourse_symbol_indexes[base] = 1 + else: + universe_of_discourse_symbol_indexes[base] += 1 + return universe_of_discourse_symbol_indexes[base] + + +class InferenceRuleDeclaration(TheoreticalObject): + """An inference-rule object. + + If an inference-rule is allowed / included in a theory-elaboration, + it allows to take a sequences of premise statements P1, P2, P3, ... + of certain shapes, + and infer a new statement C.""" + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, definition: (None, str) = None, + rep_two_columns_proof_OBSOLETE: (None, collections.abc.Callable) = None, + compose_paragraph_proof_method: (None, collections.abc.Callable) = None, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None): + self._definition = definition + self._rep_two_columns_proof = rep_two_columns_proof_OBSOLETE + self._compose_paragraph_proof_method = compose_paragraph_proof_method + if nameset is None and symbol is None: + symbol = configuration.default_inference_rule_symbol + paragraph_header = paragraph_headers.inference_rule_declaration + super().__init__(universe_of_discourse=universe_of_discourse, + is_theory_foundation_system=False, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=paragraph_header, ref=ref, + subtitle=subtitle, nameset=nameset, echo=False) + super()._declare_class_membership(declarative_class_list.inference_rule) + universe_of_discourse.cross_reference_inference_rule(self) + echo = prioritize_value(echo, configuration.echo_inference_rule_declaration, + configuration.echo_declaration, configuration.echo_default, False) + if echo: + self.echo() + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_inference_rule_declaration(i=self) + return output + + def compose_paragraph_proof(self, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + """This method should be overridden by specialized inference-rule classes to provide accurate proofs.""" + output = yield from configuration.locale.compose_inferred_statement_paragraph_proof(o=self) + return output + + @property + def definition(self) -> (None, str): + return self._definition + + def echo(self): + repm.prnt(self.rep_report()) + + @property + @abc.abstractmethod + def infer_formula(self, *args, t: TheoryElaborationSequence, echo: (None, bool) = None, + **kwargs) -> Formula: + """Apply this inference-rules on input statements and return the resulting statement.""" + raise NotImplementedError('infer_formula is an abstract method and must be implemented') + + def infer_statement(self, *args, t: TheoryElaborationSequence, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None, **kwargs) -> InferredStatement: + """Apply this inference-rules on input statements and return the resulting statement.""" + return InferredStatement(*args, i=self, t=t, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo, **kwargs) + + def verify_args(self, *args, t: TheoryElaborationSequence): + """Verify the syntactical-compatibility of input statements and return True + if they are compatible, False otherwise.""" + return self._verify_args(*args, t=t) + + +class AbsorptionDeclaration(InferenceRuleDeclaration): + """The declaration of the :ref:`absorption_math_concept` :ref:`inference-rule` in a :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'absorption' + abridged_name = None + auto_index = False + dashed_name = 'absorption' + explicit_name = 'absorption inference rule' + name = 'absorption' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = (p | u.r.implies | q) | u.r.proves | (p | u.r.implies | (p | u.r.land | q)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_implies_q: FormulaStatement = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + """ + + :param p_implies_q: A formula-statement of the form: (P ⟹ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: (P ⟹ (P ∧ Q)). + """ + p_implies_q = unpack_formula(p_implies_q) + p = unpack_formula(p_implies_q.parameters[0]) + q = unpack_formula(p_implies_q.parameters[1]) + p_implies_p_and_q = t.u.f(t.u.r.implication, p, t.u.f(t.u.r.conjunction, p, q)) + return p_implies_p_and_q + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_absorption_paragraph_proof(o=o) + return output + + def verify_args(self, p_implies_q: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + verify(t.contains_theoretical_objct(p_implies_q), + 'Statement ⌜p_implies_q⌝ must be contained in theory ⌜t⌝.', phi=p_implies_q, t=t, + slf=self) + p_implies_q = unpack_formula(p_implies_q) + verify(p_implies_q.relation is t.u.r.implication, + 'The relation of formula ⌜p_implies_q⌝ must be an implication.', + phi_relation=p_implies_q.relation, phi=p_implies_q, t=t, slf=self) + return True + + +class AxiomInterpretationDeclaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'axiom-interpretation' + acronym = 'ai' + abridged_name = None + auto_index = False + dashed_name = 'axiom-interpretation' + explicit_name = 'axiom interpretation inference rule' + name = 'axiom interpretation' + definition = StyledText(plaintext='A |- P', unicode='𝒜 ⊢ P') + # Assure backward-compatibility with the parent class, + # which received these methods as __init__ arguments. + infer_formula = AxiomInterpretationDeclaration.infer_formula + verify_args = AxiomInterpretationDeclaration.verify_args + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Overrides the generic paragraph proof method.""" + output = yield from configuration.locale.compose_axiom_interpretation_paragraph_proof(o=o) + return output + + def infer_formula(self, a: AxiomInclusion, p: Formula, t: TheoryElaborationSequence, + echo: (None, bool) = None) -> Formula: + """Compute the formula that results from applying this inference-rule with those arguments. + + :param a: An axiom-inclusion in the theory-elaboration-sequence under consideration: 𝒜. + :param p: A propositional formula: P. + :param t: The current theory-elaboration-sequence. + :return: (Formula) The inferred formula: P. + """ + p = unpack_formula(p) + return p + + def verify_args(self, a: AxiomInclusion, p: Formula, t: TheoryElaborationSequence) -> bool: + """Verify if the arguments comply syntactically with the inference-rule. + + WARNING: + -------- + No semantic operation is performed. + + :param a: An axiom-inclusion in the theory-elaboration-sequence under consideration: 𝒜. + :param p: A propositional formula: P. + :param t: The current theory-elaboration-sequence. + :return: (bool) True if the inference-rule arguments comply syntactically + with the inference-rule, False otherwise. + """ + verify(is_in_class(a, classes.axiom_inclusion), + '⌜a⌝ is not of declarative-class axiom-inclusion.', a=a, t=t, slf=self) + verify(t.contains_theoretical_objct(a), '⌜a⌝ is not contained in ⌜t⌝.', a=a, t=t, slf=self) + verify(is_in_class(p, classes.formula), '⌜p⌝ is not of declarative-class formula.', p=p, + t=t, slf=self) + verify(p.is_proposition, '⌜p⌝ is not propositional.', p=p, t=t, slf=self) + # TODO: Add a verification step: the axiom is not locked. + return True + + +class BiconditionalElimination1Declaration(InferenceRuleDeclaration): + """The well-known biconditional elimination #1 inference rule: P ⟺ Q ⊢ P ⟹ Q. + + Acronym: be1. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'biconditional-elimination-1' + auto_index = False + dashed_name = 'biconditional-elimination-1' + acronym = 'be1' + abridged_name = None + explicit_name = 'biconditional elimination #1 inference rule' + name = 'biconditional elimination #1' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.iff | q) | u.r.proves | (p | u.r.implies | q)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_iff_q: FormulaStatement = None, t: TheoryElaborationSequence = None, + echo: (None, bool) = None) -> Formula: + """ + + :param p_implies_q: A formula-statement of the form: (P ⟹ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: (P ⟹ (P ∧ Q)). + """ + p_iff_q: Formula = interpret_formula(u=self.u, arity=2, flexible_formula=p_iff_q) + p: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q.parameters[0]) + q: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q.parameters[1]) + output = (p | t.u.r.implies | q) + return output + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_biconditional_elimination_1_paragraph_proof( + o=o) + return output + + def verify_args(self, p_iff_q: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + p_iff_q: FormulaStatement = interpret_statement_formula(t=t, arity=None, + flexible_formula=p_iff_q) + verify(t.contains_theoretical_objct(p_iff_q), + 'Formula-statement ⌜p_iff_q⌝ must be contained in theory ⌜t⌝.', phi=p_iff_q, t=t, + slf=self) + p_iff_q: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q) + verify(p_iff_q.relation is t.u.r.biconditional, + 'The relation of formula ⌜p_iff_q⌝ must be a biconditional.', + phi_relation=p_iff_q.relation, phi=p_iff_q, t=t, slf=self) + return True + + +class BiconditionalElimination2Declaration(InferenceRuleDeclaration): + """The well-known biconditional elimination #1 inference rule: P ⟺ Q ⊢ Q ⟹ P. + + Acronym: ber. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'biconditional-elimination-2' + auto_index = False + dashed_name = 'biconditional-elimination-2' + acronym = 'be2' + abridged_name = None + explicit_name = 'biconditional elimination #2 inference rule' + name = 'biconditional elimination #2' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.iff | q) | u.r.proves | (q | u.r.implies | p)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_biconditional_elimination_2_paragraph_proof( + o=o) + return output + + def infer_formula(self, p_iff_q: FormulaStatement = None, t: TheoryElaborationSequence = None, + echo: (None, bool) = None) -> Formula: + """(P ⟺ Q ⊢ Q ⟹ P) + + :param p_iff_q: A formula-statement of the form: (P ⟺ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: (Q ⟹ P). + """ + p_iff_q: Formula = interpret_formula(u=self.u, arity=2, flexible_formula=p_iff_q) + p: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q.parameters[0]) + q: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q.parameters[1]) + output = (q | t.u.r.implies | p) + return output + + def verify_args(self, p_iff_q: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + p_iff_q: FormulaStatement = interpret_statement_formula(t=t, arity=None, + flexible_formula=p_iff_q) + verify(t.contains_theoretical_objct(p_iff_q), + 'Formula-statement ⌜p_iff_q⌝ must be contained in theory ⌜t⌝.', phi=p_iff_q, t=t, + slf=self) + p_iff_q: Formula = interpret_formula(u=self.u, arity=None, flexible_formula=p_iff_q) + verify(p_iff_q.relation is t.u.r.biconditional, + 'The relation of formula ⌜p_iff_q⌝ must be a biconditional.', + phi_relation=p_iff_q.relation, phi=p_iff_q, t=t, slf=self) + return True + + +class BiconditionalIntroductionDeclaration(InferenceRuleDeclaration): + """The well-known biconditional introduction inference rule: (P ⟹ Q), (Q ⟹ P) ⊢ (P ⟺ Q) + + Acronym: bi. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'biconditional-introduction' + auto_index = False + dashed_name = 'biconditional-introduction' + acronym = 'bi' + abridged_name = None + explicit_name = 'biconditional introduction inference rule' + name = 'biconditional introduction' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = (((p | u.r.implies | q) | u.r.sequent_comma | ( + q | u.r.implies | p)) | u.r.proves | (p | u.r.iff | q)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_implies_q: (tuple, Formula, FormulaStatement) = None, + q_implies_p: (tuple, Formula, FormulaStatement) = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + """Infer formula (P ⟺ Q) from formulae (P ⟹ Q), and (Q ⟹ P). + """ + p_implies_q = interpret_formula(u=t.u, arity=2, flexible_formula=p_implies_q) + p = p_implies_q.parameters[0] + q = p_implies_q.parameters[1] + return p | t.u.r.iff | q + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_biconditional_introduction_paragraph_proof( + o=o) + return output + + def verify_args(self, p_implies_q: FormulaStatement = None, + q_implies_p: FormulaStatement = None, t: TheoryElaborationSequence = None) -> bool: + p_implies_q = interpret_statement_formula(t=t, arity=2, flexible_formula=p_implies_q) + verify(t.contains_theoretical_objct(p_implies_q), + 'Statement ⌜p_implies_q⌝ must be contained in theory ⌜t⌝.', p_implies_q=p_implies_q, + t=t, slf=self) + q_implies_p = interpret_statement_formula(t=t, arity=2, flexible_formula=q_implies_p) + verify(t.contains_theoretical_objct(q_implies_p), + 'Statement ⌜q_implies_p⌝ must be contained in theory ⌜t⌝.', q_implies_p=q_implies_p, + t=t, slf=self) + p_implies_q: Formula = interpret_formula(u=t.u, arity=2, flexible_formula=p_implies_q) + q_implies_p: Formula = interpret_formula(u=t.u, arity=2, flexible_formula=q_implies_p) + verify(p_implies_q.relation is t.u.r.implication, + 'The relation of formula ⌜p_implies_q⌝ must be an implication.', + p_implies_q_relation=p_implies_q.relation, p_implies_q=p_implies_q, t=t, slf=self) + verify(q_implies_p.relation is t.u.r.implication, + 'The relation of formula ⌜q_implies_p⌝ must be an implication.', + q_implies_p_relation=p_implies_q.relation, q_implies_p=q_implies_p, t=t, slf=self) + + verify(p_implies_q.parameters[0].is_formula_syntactically_equivalent_to( + q_implies_p.parameters[1]), + 'The p of the ⌜p_implies_q⌝ formula must be formula-syntactically-equivalent to the p of ' + '⌜q_implies_p⌝ formula.', p_implies_q=p_implies_q, q_implies_p=q_implies_p, t=t, + slf=self) + verify(p_implies_q.parameters[1].is_formula_syntactically_equivalent_to( + q_implies_p.parameters[0]), + 'The q of the ⌜p_implies_q⌝ formula must be formula-syntactically-equivalent to the q of ' + '⌜q_implies_p⌝ formula.', p_implies_q=p_implies_q, q_implies_p=q_implies_p, t=t, + slf=self) + return True + + +class ConjunctionElimination1Declaration(InferenceRuleDeclaration): + """The well-known conjunction elimination #1 inference rule: P ⟺ Q ⊢ P ⟹ Q. + + Acronym: cel. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'conjunction-elimination-1' + auto_index = False + dashed_name = 'conjunction-elimination-1' + acronym = 'ce1' + abridged_name = None + explicit_name = 'conjunction elimination #1 inference rule' + name = 'conjunction elimination #1' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.land | q) | u.r.proves | p) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_land_q: FormulaStatement = None, t: TheoryElaborationSequence = None, + echo: (None, bool) = None, **kwargs) -> Formula: + """ + + :param p_land_q: A formula-statement of the form: (P ⋀ Q). + :param t: The current theory-elaboration-sequence. + :param echo: + :return: The (proven) formula: P. + """ + p = unpack_formula(p_land_q).parameters[0] + return p + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_conjunction_elimination_1_paragraph_proof( + o=o) + return output + + def verify_args(self, p_land_q: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + verify(t.contains_theoretical_objct(p_land_q), + 'Statement ⌜p_land_q⌝ must be contained in theory ⌜t⌝''s hierarchy.', p_land_q=p_land_q, + t=t, slf=self) + verify(p_land_q.relation is t.u.r.conjunction, + 'The relation of formula ⌜p_land_q⌝ must be a conjunction.', + p_land_q_relation=p_land_q.relation, p_land_q=p_land_q, t=t, slf=self) + return True + + +class ConjunctionElimination2Declaration(InferenceRuleDeclaration): + """The well-known conjunction elimination #2 inference rule: P ⟺ Q ⊢ Q ⟹ P. + + Acronym: cer. + + :param p_land_q: A formula-statement of the form: (P ⋀ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: Q. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'conjunction-elimination-2' + auto_index = False + dashed_name = 'conjunction-elimination-2' + acronym = 'ce2' + abridged_name = None + explicit_name = 'conjunction elimination #2 inference rule' + name = 'conjunction elimination #2' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.land | q) | u.r.proves | q) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_land_q: FormulaStatement = None, t: TheoryElaborationSequence = None, + echo: (None, bool) = None) -> Formula: + """ + + :param p_land_q: A formula-statement of the form: (P ∧ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: Q. + """ + p_land_q = interpret_formula(u=t.u, arity=2, flexible_formula=p_land_q) + q = p_land_q.parameters[1] + return q + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_conjunction_elimination_2_paragraph_proof( + o=o) + return output + + def verify_args(self, p_land_q: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + verify(t.contains_theoretical_objct(p_land_q), + 'Statement ⌜p_land_q⌝ must be contained in theory ⌜t⌝''s hierarchy.', p_land_q=p_land_q, + t=t, slf=self) + verify(p_land_q.relation is t.u.r.conjunction, + 'The relation of formula ⌜p_land_q⌝ must be a conjunction.', + p_land_q_relation=p_land_q.relation, p_land_q=p_land_q, t=t, slf=self) + return True + + +class ConjunctionIntroductionDeclaration(InferenceRuleDeclaration): + """The declaration of the :ref:`conjunction-introduction` :ref:`inference-rule` as valid in the target :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'conjunction-introduction' + acronym = 'ci' + abridged_name = None + auto_index = False + dashed_name = 'conjunction-introduction' + explicit_name = 'conjunction introduction inference rule' + name = 'conjunction introduction' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.sequent_comma | q) | u.r.proves | (p | u.r.land | q)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: FormulaStatement, q: FormulaStatement, t: TheoryElaborationSequence, + echo: (None, bool) = None) -> Formula: + """Apply the :ref:`conjunction-introduction` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula-statement of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + :param echo: + :return: The resulting formula :math:`\\left( P \\land Q \\right)` . + """ + p = interpret_formula(u=t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=t.u, arity=None, flexible_formula=q) + return p | t.u.r.land | q + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the paragraph-proof of inferred-statements based on the :ref:`conjunction-introduction` :ref:`inference-rule` .""" + output = yield from configuration.locale.compose_conjunction_introduction_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement, q: FormulaStatement, + t: TheoryElaborationSequence) -> bool: + """Verify the correctness of the parameters provided to the :ref:`double-negation-introduction` :ref:`inference-rule` . + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula-statement of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + + :return: True (bool) if the parameters are correct. + """ + p = interpret_statement_formula(t=t, arity=None, flexible_formula=p) + q = interpret_statement_formula(t=t, arity=None, flexible_formula=q) + verify(t.contains_theoretical_objct(p), + 'Statement ⌜p⌝ must be contained in theory ⌜t⌝''s hierarchy.', p=p, t=t, slf=self) + verify(t.contains_theoretical_objct(q), + 'Statement ⌜q⌝ must be contained in theory ⌜t⌝''s hierarchy.', q=q, t=t, slf=self) + return True + + +class DefinitionInterpretationDeclaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'definition-interpretation' + acronym = 'di' + abridged_name = None + auto_index = False + dashed_name = 'definition-interpretation' + explicit_name = 'definition interpretation inference rule' + name = 'definition interpretation' + definition = '𝒟 ⊢ P' + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_definition_interpretation_paragraph_proof( + o=o) + return output + + def infer_formula(self, d: DefinitionInclusion, p: Formula, t: TheoryElaborationSequence, + echo: (None, bool) = None) -> Formula: + """Compute the formula that results from applying this inference-rule with those arguments. + + :param d: An definition-inclusion in the theory-elaboration-sequence under consideration: 𝒜. + :param p: A propositional formula: P. + :param t: The current theory-elaboration-sequence. + :return: (Formula) The inferred formula: P. + """ + p = unpack_formula(p) + return p + + def verify_args(self, d: DefinitionInclusion, p: Formula, t: TheoryElaborationSequence) -> bool: + """Verify if the arguments comply syntactically with the inference-rule. + + WARNING: + -------- + No semantic operation is performed. + + :param d: An definition-inclusion in the theory-elaboration-sequence under consideration: 𝒜. + :param p: A propositional formula: P. + :param t: The current theory-elaboration-sequence. + :return: (bool) True if the inference-rule arguments comply syntactically + with the inference-rule, False otherwise. + """ + verify(is_in_class(d, classes.definition_inclusion), + '⌜d⌝ is not of declarative-class definition-inclusion.', d=d, t=t, slf=self) + verify(t.contains_theoretical_objct(d), '⌜d⌝ is not contained in ⌜t⌝.', d=d, t=t, slf=self) + verify(is_in_class(p, classes.formula), '⌜p⌝ is not of declarative-class formula.', p=p, + t=t, slf=self) + verify(p.is_proposition, '⌜p⌝ is not propositional.', p=p, t=t, slf=self) + # TODO: Add a verification step: the definition is not locked. + return True + + +class DisjunctionIntroduction1Declaration(InferenceRuleDeclaration): + """The declaration of the :ref:`disjunction-introduction-1` :ref:`inference-rule` as valid in the target :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'disjunction-introduction-1' + acronym = 'di1' + abridged_name = None + auto_index = False + dashed_name = 'disjunction-introduction-1' + explicit_name = 'disjunction introduction #1 inference rule' + name = 'disjunction introduction #1' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = (p | u.r.proves | (q | u.r.lor | p)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: FormulaStatement, q: (Formula, FormulaStatement), + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + """Apply the :ref:`disjunction-introduction-1` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + :param echo: + :return: The resulting formula :math:`\\left( Q \\lor P \\right)` . + """ + p = interpret_formula(u=t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=t.u, arity=None, flexible_formula=q) + return q | t.u.r.lor | p + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the paragraph-proof of inferred-statements based on the :ref:`disjunction-introduction-1` :ref:`inference-rule` .""" + output = yield from configuration.locale.compose_disjunction_introduction_1_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement, q: (Formula, FormulaStatement), + t: TheoryElaborationSequence) -> bool: + """Verify the correctness of the parameters provided to the :ref:`double-negation-introduction` :ref:`inference-rule` . + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + + :return: True (bool) if the parameters are correct. + """ + p = interpret_statement_formula(t=t, arity=None, flexible_formula=p) + q = interpret_formula(u=t.u, arity=None, flexible_formula=q) + verify(t.contains_theoretical_objct(p), + 'Statement ⌜p⌝ must be contained in theory ⌜t⌝''s hierarchy.', p=p, t=t, slf=self) + return True + + +class DisjunctionIntroduction2Declaration(InferenceRuleDeclaration): + """The declaration of the :ref:`disjunction-introduction-2` :ref:`inference-rule` as valid in the target :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'disjunction-introduction-2' + acronym = 'di2' + abridged_name = None + auto_index = False + dashed_name = 'disjunction-introduction-2' + explicit_name = 'disjunction introduction #2 inference rule' + name = 'disjunction introduction #2' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = (p | u.r.proves | (p | u.r.lor | q)) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: FormulaStatement, q: (Formula, FormulaStatement), + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + """Apply the :ref:`disjunction-introduction-2` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + :param echo: + :return: The resulting formula :math:`\\left( P \\lor Q \\right)` . + """ + p = interpret_formula(u=t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=t.u, arity=None, flexible_formula=q) + return p | t.u.r.lor | q + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the paragraph-proof of inferred-statements based on the :ref:`disjunction-introduction-2` :ref:`inference-rule` .""" + output = yield from configuration.locale.compose_disjunction_introduction_2_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement, q: (Formula, FormulaStatement), + t: TheoryElaborationSequence) -> bool: + """Verify the correctness of the parameters provided to the :ref:`double-negation-introduction` :ref:`inference-rule` . + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + + :return: True (bool) if the parameters are correct. + """ + p = interpret_statement_formula(t=t, arity=None, flexible_formula=p) + q = interpret_formula(u=t.u, arity=None, flexible_formula=q) + verify(t.contains_theoretical_objct(p), + 'Statement ⌜p⌝ must be contained in theory ⌜t⌝''s hierarchy.', p=p, t=t, slf=self) + return True + + +class DoubleNegationEliminationDeclaration(InferenceRuleDeclaration): + """The well-known double negation elimination #1 inference rule: ¬(¬(P)) ⊢ P. + + Acronym: cer. + + :param p_land_q: A formula-statement of the form: (P ⋀ Q). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: Q. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'double-negation-elimination' + auto_index = False + dashed_name = 'double-negation-elimination' + acronym = 'dne' + abridged_name = None + explicit_name = 'double negation elimination inference rule' + name = 'double negation elimination' + with u.v(symbol='P') as p: + definition = (u.r.lnot(u.r.lnot(p)) | u.r.proves | p) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, not_not_p: (None, Formula) = None, t: TheoryElaborationSequence = None, + echo: (None, bool) = None) -> Formula: + """ + + :param not_not_p: A formula-statement of the form: ¬(¬(P)). + :param t: The current theory-elaboration-sequence. + :return: The (proven) formula: P. + """ + not_not_p: Formula = interpret_formula(u=t.u, arity=1, flexible_formula=not_not_p) + not_p: Formula = not_not_p.parameters[0] + p: Formula = not_p.parameters[0] + return p + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_double_negation_elimination_paragraph_proof( + o=o) + return output + + def verify_args(self, not_not_p: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + not_not_p: FormulaStatement = interpret_statement_formula(t=t, arity=1, + flexible_formula=not_not_p) + verify(assertion=t.contains_theoretical_objct(not_not_p), + msg='Statement ⌜not_not_p⌝ must be contained in ⌜t⌝.', not_not_p=not_not_p, t=t, + slf=self) + verify(assertion=not_not_p.valid_proposition.relation is t.u.r.negation, + msg='The parent formula in ⌜not_not_p⌝ must have ⌜negation⌝ relation.', + not_not_p=not_not_p, t=t, slf=self) + not_p: Formula = not_not_p.valid_proposition.parameters[0] + not_p: Formula = interpret_formula(u=t.u, arity=1, flexible_formula=not_p) + verify(assertion=not_p.relation is t.u.r.negation, + msg='The child formula in ⌜not_not_p⌝ must have ⌜negation⌝ relation.', not_not_p=not_p, + t=t, slf=self) + return True + + +class DoubleNegationIntroductionDeclaration(InferenceRuleDeclaration): + """The declaration of the :ref:`double-negation-introduction` :ref:`inference-rule` as valid in the target :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'double-negation-introduction' + auto_index = False + dashed_name = 'double-negation-introduction' + acronym = 'dni' + abridged_name = None + explicit_name = 'double negation introduction inference rule' + name = 'double negation introduction' + with u.v(symbol='P') as p: + definition = (p | u.r.proves | u.r.lnot(u.r.lnot(p))) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: (None, Formula, FormulaStatement) = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + """Apply the :ref:`double-negation-introduction` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param t: (mandatory) The target theory-elaboration-sequence that must contain :math:`P` . + :param echo: + :return: The resulting formula :math:`\\lnot \\left( \\lnot \\left( P \\right) \\right)` . + """ + p: Formula = interpret_formula(u=t.u, arity=1, flexible_formula=p) + not_not_p: Formula = t.u.r.lnot(t.u.r.lnot(p)) + return not_not_p + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Composes the paragraph-proof of inferred-statements based on the :ref:`double-negation-introduction` :ref:`inference-rule` .""" + output = yield from configuration.locale.compose_double_negation_introduction_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement = None, t: TheoryElaborationSequence = None) -> bool: + p: FormulaStatement = interpret_statement_formula(t=t, arity=1, flexible_formula=p) + """Verify the correctness of the parameters provided to the :ref:`double-negation-introduction` :ref:`inference-rule` . + + :param p: (mandatory) A formula-statement of the form: :math:`P` . + + :return: True (bool) if the parameters are correct. + """ + verify(assertion=t.contains_theoretical_objct(p), + msg='Statement ⌜p⌝ must be contained in ⌜t⌝.', p=p, t=t, slf=self) + return True + + +class EqualityCommutativityDeclaration(InferenceRuleDeclaration): + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'equality-commutativity' + acronym = 'ec' + abridged_name = None + auto_index = False + dashed_name = 'equality-commutativity' + explicit_name = 'equality commutativity inference rule' + name = 'equality commutativity' + with u.v(symbol='x') as x, u.v(symbol='y') as y: + definition = (x | u.r.equal | y) | u.r.proves | (y | u.r.equal | x) + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, x_equal_y: (None, FormulaStatement) = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + """Apply the inference-rule equality-commutativity and return the inferred formula. + + :param x_equal_y: an equality formula-statement of the form: (P = Q). + :return: (FormulaStatement) The inferred-statement (Q = P). + """ + x_equal_y: Formula + x_equal_y = unpack_formula(x_equal_y) + p = x_equal_y.parameters[0] + q = x_equal_y.parameters[1] + return t.u.f(t.u.r.equality, q, p) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_equality_commutativity_paragraph_proof(o=o) + return output + + def verify_args(self, x_equal_y: (None, FormulaStatement) = None, + t: TheoryElaborationSequence = None) -> bool: + verify(is_in_class(x_equal_y, classes.formula_statement), + '⌜x_equal_y⌝ is not of the declarative-class formula-statement.', p_eq_q=x_equal_y, t=t, + slf=self) + verify(t.contains_theoretical_objct(x_equal_y), + 'Statement ⌜x_equal_y⌝ is not contained in ⌜t⌝''s hierarchy.', p_eq_q=x_equal_y, t=t, + slf=self) + x_equal_y = unpack_formula(x_equal_y) + verify(x_equal_y.relation is self.u.r.equality, + 'The root relation of formula ⌜x_equal_y⌝ is not the equality relation.', + p_eq_q_relation=x_equal_y.relation, p_eq_q=x_equal_y, t=t, slf=self) + return True + + +class EqualTermsSubstitutionDeclaration(InferenceRuleDeclaration): + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'equal-terms-substitution' + acronym = 'ets' + abridged_name = None + auto_index = False + dashed_name = 'equal-terms-substitution' + explicit_name = 'equal terms substitution inference rule' + name = 'equal terms substitution' + with u.v(symbol='P') as p, u.v(symbol='Q') as q, u.v(symbol='x') as x, u.v(symbol='y') as y: + definition = (p | u.r.sequent_comma | (x | u.r.equal | y)) | u.r.proves | q + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: FormulaStatement = None, x_equal_y: FormulaStatement = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + """Apply the inference-rule equal-terms-substitution and return the inferred formula. + + :param p: a formula-statement of the form: P. + :param x_equal_y: an equality formula-statement of the form: (Q = R). + :return: (FormulaStatement) The formula-statement P modified such that all occurrences of +Q in P are replaced with R. + """ + p: Formula + x_equal_y: Formula + p = unpack_formula(p) + x_equal_y = unpack_formula(x_equal_y) + q = x_equal_y.parameters[0] + r = x_equal_y.parameters[1] + substitution_map = {q: r} + p_prime = p.substitute(substitution_map=substitution_map, target_theory=t, + lock_variable_scope=True) + return p_prime # TODO: EqualTermsSubstitution: Provide support for statements that are # atomic propositional formula, that is without relation or where the objct is a 0-ary # # relation. + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_equal_terms_substitution_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement = None, x_equal_y: FormulaStatement = None, + t: TheoryElaborationSequence = None) -> bool: + verify(is_in_class(p, classes.formula_statement), '⌜p⌝ must be a formula-statement.', p=p, + slf=self, t=t) + verify(t.contains_theoretical_objct(p), '⌜p⌝ must be in theory-elaboration-sequence ⌜t⌝.', + p=p, slf=self, t=t) + verify(is_in_class(x_equal_y, classes.formula_statement), + '⌜x_equal_y⌝ is not of the formula-statement declarative-class.', q_equal_r=x_equal_y, + slf=self, t=t) + verify(t.contains_theoretical_objct(x_equal_y), + '⌜x_equal_y⌝ is not contained in theoretical-elaboration-sequence ⌜t⌝.', + q_equal_r=x_equal_y, slf=self, t=t) + x_equal_y = unpack_formula(x_equal_y) + verify(x_equal_y.relation is self.u.r.equality, + 'The root relation of ⌜x_equal_y⌝ is not the equality relation.', q_equal_r=x_equal_y, + slf=self, t=t) + return True + + +class InconsistencyIntroduction1Declaration(InferenceRuleDeclaration): + """P ⋀ not P: inconsistency""" + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'inconsistency-introduction-1' + acronym = 'ii1' + abridged_name = None + auto_index = False + dashed_name = 'inconsistency-introduction-1' + explicit_name = 'inconsistency introduction #1 inference rule' + name = 'inconsistency introduction #1' + definition = StyledText(plaintext='(P, not(P)) |- (T)', unicode='(𝑷, ¬(𝑷)) ⊢ 𝐼𝑛𝑐(𝓣)') + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p: FormulaStatement = None, not_p: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + p = unpack_formula(p) + not_p = unpack_formula(not_p) + return t.u.f(t.u.r.inconsistency, inconsistent_theory) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_inconsistency_introduction_1_paragraph_proof( + o=o) + return output + + def verify_args(self, p: FormulaStatement = None, not_p: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None) -> bool: + verify(inconsistent_theory.contains_theoretical_objct(p), + 'Statement ⌜p⌝ must be contained in theory ⌜inconsistent_theory⌝''s hierarchy.', p=p, + inconsistent_theory=inconsistent_theory, slf=self) + verify(inconsistent_theory.contains_theoretical_objct(not_p), + 'Statement ⌜not_p⌝ must be contained in theory ⌜inconsistent_theory⌝''s hierarchy.', + not_p=not_p, inconsistent_theory=inconsistent_theory, slf=self) + verify(not_p.relation is not_p.theory.universe_of_discourse.relations.negation, + 'The relation of statement ⌜not_p⌝ must be ⌜negation⌝.', not_p=not_p, + inconsistent_theory=inconsistent_theory, slf=self) + not_p_formula = not_p.valid_proposition + p_in_not_p = not_p_formula.parameters[0] + verify(p_in_not_p.is_formula_syntactically_equivalent_to(p), + 'The sub-formula (parameter) ⌜p⌝ in ⌜not_p⌝ must be formula-syntactically-equivalent to ⌜p⌝.', + not_p=not_p, p_in_not_p=p_in_not_p, p=p, slf=self) + return True + + +class InconsistencyIntroduction2Declaration(InferenceRuleDeclaration): + """P = Q ⋀ P neq Q: inconsistency """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'inconsistency-introduction-2' + acronym = 'ii2' + abridged_name = None + auto_index = False + dashed_name = 'inconsistency-introduction-2' + explicit_name = 'inconsistency introduction #2 inference rule' + name = 'inconsistency introduction #2' + definition = StyledText(plaintext='((P = Q), (P neq Q)) |- Inc(T)', + unicode='((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯)') + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, x_eq_y: FormulaStatement = None, x_neq_y: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + x_eq_y = unpack_formula(x_eq_y) + x_neq_y = unpack_formula(x_neq_y) + return t.u.f(t.u.r.inconsistency, inconsistent_theory) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_inconsistency_introduction_2_paragraph_proof( + o=o) + return output + + def verify_args(self, x_eq_y: FormulaStatement = None, x_neq_y: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None) -> bool: + verify(inconsistent_theory.contains_theoretical_objct(x_eq_y), + 'Statement ⌜x_eq_y⌝ must be contained in ⌜inconsistent_theory⌝.', p_eq_q=x_eq_y, + inconsistent_theory=inconsistent_theory, slf=self) + verify(inconsistent_theory.contains_theoretical_objct(x_neq_y), + 'Statement ⌜x_neq_y⌝ must be contained in ⌜inconsistent_theory⌝.', p_neq_q=x_neq_y, + inconsistent_theory=inconsistent_theory, slf=self) + verify(x_eq_y.relation is x_eq_y.theory.universe_of_discourse.relations.equality, + 'The relation of statement ⌜x_eq_y⌝ must be ⌜equality⌝.', p_neq_q=x_neq_y, + inconsistent_theory=inconsistent_theory, slf=self) + verify(x_neq_y.relation is x_neq_y.theory.universe_of_discourse.relations.inequality, + 'The relation of statement ⌜x_neq_y⌝ must be ⌜inequality⌝.', p_neq_q=x_neq_y, + inconsistent_theory=inconsistent_theory, slf=self) + verify(x_eq_y.valid_proposition.parameters[0].is_formula_syntactically_equivalent_to( + x_neq_y.valid_proposition.parameters[0]), + 'The ⌜x⌝ in ⌜x_eq_y⌝ must be formula-syntactically-equivalent to the ⌜x⌝ in ⌜x_neq_y⌝.', + p_eq_q=x_eq_y, p_neq_q=x_neq_y, inconsistent_theory=inconsistent_theory, slf=self) + verify(x_eq_y.valid_proposition.parameters[1].is_formula_syntactically_equivalent_to( + x_neq_y.valid_proposition.parameters[1]), + 'The ⌜y⌝ in ⌜x_eq_y⌝ must be formula-syntactically-equivalent to the ⌜y⌝ in ⌜x_neq_y⌝.', + p_eq_q=x_eq_y, p_neq_q=x_neq_y, inconsistent_theory=inconsistent_theory, slf=self) + return True + + +class InconsistencyIntroduction3Declaration(InferenceRuleDeclaration): + """P neq P: inconsistency """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'inconsistency-introduction-3' + acronym = 'ii3' + abridged_name = None + auto_index = False + dashed_name = 'inconsistency-introduction-3' + explicit_name = 'inconsistency introduction #3 inference rule' + name = 'inconsistency introduction #3' + definition = StyledText(plaintext='(P neq P) |- Inc(T)', unicode='(𝑷 ≠ 𝑷) ⊢ Inc(𝒯)') + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def infer_formula(self, p_neq_p: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None, echo: (None, bool) = None) -> Formula: + p_neq_p = interpret_formula(u=self.u, arity=2, flexible_formula=p_neq_p) + return t.u.f(t.u.r.inconsistency, inconsistent_theory) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_inconsistency_introduction_3_paragraph_proof( + o=o) + return output + + def verify_args(self, p_neq_p: FormulaStatement = None, + inconsistent_theory: TheoryElaborationSequence = None, + t: TheoryElaborationSequence = None) -> bool: + verify(inconsistent_theory.contains_theoretical_objct(p_neq_p), + 'Statement ⌜p_neq_p⌝ must be contained in theory ⌜inconsistent_theory⌝''s hierarchy.', + p_neq_p=p_neq_p, inconsistent_theory=inconsistent_theory, slf=self) + verify(p_neq_p.relation is p_neq_p.theory.universe_of_discourse.relations.inequality, + 'The relation of statement ⌜p_neq_p⌝ must be ⌜inequality⌝.', p_neq_p=p_neq_p, + inconsistent_theory=inconsistent_theory, slf=self) + verify(p_neq_p.valid_proposition.parameters[0].is_formula_syntactically_equivalent_to( + p_neq_p.valid_proposition.parameters[1]), + 'The two ⌜p⌝ terms in ⌜p_neq_p⌝ must be formula-syntactically-equivalent.', + p_neq_p=p_neq_p, inconsistent_theory=inconsistent_theory, slf=self) + return True + + +class ModusPonensDeclaration(InferenceRuleDeclaration): + """The declaration of the :ref:`modus-ponens` :ref:`inference-rule` in a :ref:`universe-of-discourse`. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + u: UniverseOfDiscourse = universe_of_discourse + symbol = 'modus-ponens' + acronym = 'mp' + abridged_name = None + auto_index = False + dashed_name = 'modus-ponens' + explicit_name = 'modus ponens inference rule' + name = 'modus ponens' + with u.v(symbol='P') as p, u.v(symbol='Q') as q: + definition = ((p | u.r.implies | p) | u.r.sequent_comma | p) | u.r.proves | q + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_modus_ponens_paragraph_proof(o=o) + return output + + def infer_formula(self, p_implies_q: FormulaStatement, p: FormulaStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + """ + + :param args: A statement (P ⟹ Q), and a statement P + :param t: + :return: A formula Q + """ + p_implies_q = interpret_formula(u=self.u, arity=2, flexible_formula=p_implies_q) + q = interpret_formula(u=self.u, arity=2, flexible_formula=p_implies_q.parameters[1]) + return q + + def verify_args(self, p_implies_q: FormulaStatement, p: FormulaStatement, + t: TheoryElaborationSequence) -> bool: + """ + + :param args: A statement (P ⟹ Q), and a statement P + :param t: + :return: A formula Q + """ + p_implies_q = interpret_statement_formula(t=t, arity=2, flexible_formula=p_implies_q) + p = interpret_statement_formula(t=t, arity=2, flexible_formula=p) + verify(t.contains_theoretical_objct(p_implies_q), + 'Statement ⌜p_implies_q⌝ is not contained in theory ⌜t⌝''s hierarchy.', + p_implies_q=p_implies_q, t=t, slf=self) + p_implies_q = unpack_formula(p_implies_q) + verify(p_implies_q.relation is t.u.r.implication, + 'The relation of formula ⌜p_implies_q⌝ is not an implication.', + p_implies_q_relation=p_implies_q.relation, p_implies_q=p_implies_q, t=t, slf=self) + verify(t.contains_theoretical_objct(p), + 'Statement ⌜p⌝ must be contained in theory ⌜t⌝''s hierarchy.', p_prime=p, t=t, slf=self) + p = unpack_formula(p) + p_prime = unpack_formula(p_implies_q.parameters[0]) + # The antecedant of the implication may contain free-variables, + # store these in a mask for masked-formula-similitude comparison. + verify(p.is_formula_syntactically_equivalent_to(p_prime), + 'Formula ⌜p_prime⌝ in statement ⌜p_implies_q⌝ must be formula-syntactically-equivalent to statement ' + '⌜p⌝.', p_implies_q=p_implies_q, p=p, p_prime=p_prime, t=t, slf=self) + return True + + +class ProofByContradiction1Declaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'proof-by-contradiction' + acronym = 'pbc' + auto_index = False + dashed_name = 'proof-by-contradiction' + explicit_name = 'proof by contradiction inference rule' + name = 'proof by contradiction' + definition = StyledText(plaintext='(H assume not(P), P, Inc(H)) |- P', + unicode='(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 ¬𝑷, 𝑷, 𝐼𝑛𝑐(𝓗)) ⊢ 𝑷') + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_proof_by_contradiction_1_paragraph_proof( + o=o) + return output + + def infer_formula(self, not_p_hypothesis: Hypothesis, inc_hypothesis: FormulaStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + not_p = not_p_hypothesis.hypothesis_formula + p = not_p.parameters[0] + return p + + def verify_args(self, not_p_hypothesis: Hypothesis, inc_hypothesis: InferredStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> bool: + """ + + :param not_p_hypothesis: The hypothesis-statement in the parent theory. + :param inc_hypothesis: The contradiction-statement Inc(Tn) where Tn is the hypothesis-theory. + :param t: The current (parent) theory. + :param echo: + :return: + """ + verify(is_in_class(not_p_hypothesis, classes.hypothesis), '⌜not_p⌝ must be an hypothesis.', + not_p=not_p_hypothesis, slf=self) + verify(is_in_class(inc_hypothesis, classes.inferred_proposition), + '⌜inc_not_p⌝ must be an inferred-statement.', inc_not_p=inc_hypothesis, slf=self) + verify(t.contains_theoretical_objct(not_p_hypothesis), '⌜not_p⌝ must be in theory ⌜t⌝.', + not_p=not_p_hypothesis, t=t, slf=self) + verify(not_p_hypothesis.hypothesis_child_theory.extended_theory is t, + '⌜not_p.hypothetical_theory⌝ must extend the parent theory ⌜t⌝.', + not_p_hypothetical_theory=not_p_hypothesis.hypothesis_child_theory, + not_p=not_p_hypothesis, t=t, slf=self) + verify(inc_hypothesis.relation is t.u.relations.inconsistency, + '⌜inc_not_p.relation⌝ must be of form (Inc(Hn)).', + inc_not_p_relation=inc_hypothesis.relation, inc_not_p=inc_hypothesis, t=t, slf=self) + verify(inc_hypothesis.valid_proposition.parameters[ + 0] is not_p_hypothesis.hypothesis_child_theory, + '⌜inc_not_p⌝ must be of form (Inc(Hn)) where parameter[0] Hn is the ' + 'hypothetical-theory.', + inc_not_p_parameters_0=inc_hypothesis.valid_proposition.parameters[0], + not_p_hypothetical_theory=not_p_hypothesis.hypothesis_child_theory, t=t, slf=self) + return True + + +class ProofByContradiction2Declaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'proof-by-contradiction-2' + acronym = 'pbc2' + auto_index = False + dashed_name = 'proof-by-contradiction-2' + explicit_name = 'proof by contradiction #2 inference rule' + name = 'proof by contradiction #2' + definition = '(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 ≠ 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 = 𝑸)' + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_proof_by_contradiction_2_paragraph_proof( + o=o) + return output + + def infer_formula(self, x_neq_y_hypothesis: Hypothesis, inc_hypothesis: FormulaStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + x_neq_y = x_neq_y_hypothesis.hypothesis_formula + x = x_neq_y.parameters[0] + y = x_neq_y.parameters[1] + return t.u.f(t.u.r.equality, x, y) + + def verify_args(self, x_neq_y_hypothesis: Hypothesis, inc_hypothesis: InferredStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> bool: + """ + + :param x_neq_y_hypothesis: The hypothesis-statement in the parent theory. + :param inc_hypothesis: The contradiction-statement Inc(Tn) where Tn is the hypothesis-theory. + :param t: The current (parent) theory. + :param echo: + :return: + + TODO: ProofByContradiction2Declaration.verify_args(): Make systematic verifications. I doubt it is still possible to call the method with wrong parameters. + """ + inc_hypothesis: InferredStatement = interpret_statement_formula(t=t, arity=1, + flexible_formula=inc_hypothesis) + verify(is_in_class(x_neq_y_hypothesis, classes.hypothesis), + '⌜x_neq_y_hypothesis⌝ must be an hypothesis.', p_neq_q=x_neq_y_hypothesis, slf=self) + verify(t.contains_theoretical_objct(x_neq_y_hypothesis), '⌜x_neq_y⌝ must be in theory ⌜t⌝.', + p_neq_q=x_neq_y_hypothesis, t=t, slf=self) + verify(x_neq_y_hypothesis.hypothesis_child_theory.extended_theory is t, + '⌜x_neq_y_hypothesis.hypothesis_child_theory⌝ must extend the parent theory ⌜t⌝.', + p_neq_q_hypothetical_theory=x_neq_y_hypothesis.hypothesis_child_theory, + p_neq_q=x_neq_y_hypothesis, t=t, slf=self) + verify(inc_hypothesis.valid_proposition.relation is t.u.relations.inconsistency, + '⌜inc_hypothesis.relation⌝ must be the inconsistency relation.', + inc_hypothesis_relation=inc_hypothesis.relation, inc_hypothesis=inc_hypothesis, t=t, + slf=self) + inc_hypothesis_hypothesis: Hypothesis = inc_hypothesis.valid_proposition.parameters[0] + x_neq_y_prime: FormulaStatement = inc_hypothesis.parameters[1] + verify(x_neq_y_hypothesis.child_statement.is_formula_syntactically_equivalent_to( + x_neq_y_prime), + '⌜x_neq_y⌝ must be formula-syntactically-equivalent to ⌜x_neq_y⌝ in ⌜inc_x_neq_y⌝.', + x_neq_y_hypothesis=x_neq_y_hypothesis, x_neq_y_prime=x_neq_y_prime, t=t, slf=self) + return True + + +class ProofByRefutation1Declaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'proof-by-refutation' + acronym = 'pbr' + auto_index = False + dashed_name = 'proof-by-refutation' + explicit_name = 'proof by refutation inference rule' + name = 'proof by refutation' + definition = '(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 𝑷, 𝐼𝑛𝑐(𝓗)) ⊢ ¬𝑷' + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_proof_by_refutation_1_paragraph_proof(o=o) + return output + + def infer_formula(self, p_hypothesis: Hypothesis, inc_hypothesis: FormulaStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + p = p_hypothesis.hypothesis_formula + not_p = t.u.f(t.u.r.negation, p) + return not_p + + def verify_args(self, p_hypothesis: Hypothesis, inc_hypothesis: InferredStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> bool: + """ + + :param p_hypothesis: The hypothesis-statement in the parent theory. + :param inc_hypothesis: The refutation-statement Inc(Tn) where Tn is the hypothesis-theory. + :param t: The current (parent) theory. + :param echo: + :return: + """ + verify(is_in_class(p_hypothesis, classes.hypothesis), '⌜p⌝ must be an hypothesis.', + p=p_hypothesis, slf=self) + verify(is_in_class(inc_hypothesis, classes.inferred_proposition), + '⌜inc_p⌝ must be an inferred-statement.', inc_p=inc_hypothesis, slf=self) + verify(t.contains_theoretical_objct(p_hypothesis), '⌜p⌝ must be in theory ⌜t⌝.', + p=p_hypothesis, t=t, slf=self) + verify(p_hypothesis.hypothesis_child_theory.extended_theory is t, + '⌜p.hypothetical_theory⌝ must extend the parent theory ⌜t⌝.', + p_hypothetical_theory=p_hypothesis.hypothesis_child_theory, p=p_hypothesis, t=t, + slf=self) + verify(inc_hypothesis.relation is t.u.relations.inconsistency, + '⌜inc_p.relation⌝ must be of form (Inc(Hn)).', inc_p_relation=inc_hypothesis.relation, + inc_p=inc_hypothesis, t=t, slf=self) + verify( + inc_hypothesis.valid_proposition.parameters[0] is p_hypothesis.hypothesis_child_theory, + '⌜inc_p⌝ must be of form (Inc(Hn)) where parameter[0] Hn is the hypothetical-theory.', + inc_p_parameters_0=inc_hypothesis.valid_proposition.parameters[0], + p_hypothetical_theory=p_hypothesis.hypothesis_child_theory, t=t, slf=self) + # TODO: ProofByContradictionDeclaration.verify_args: check that the parent theory is + # stable??? + # TODO: ProofByContradictionDeclaration.verify_args: check that the hypothetical-theory + # is stable + return True + + +class ProofByRefutation2Declaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'proof-by-refutation-2' + acronym = 'pbr2' + auto_index = False + dashed_name = 'proof-by-refutation-2' + explicit_name = 'proof by refutation #2 inference rule' + name = 'proof by refutation #2' + definition = '(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)' + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_proof_by_refutation_2_paragraph_proof(o=o) + return output + + def infer_formula(self, p_eq_q_hypothesis: Hypothesis, inc_hypothesis: FormulaStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> Formula: + p_eq_q = p_eq_q_hypothesis.hypothesis_formula + p_neq_q = t.u.f(t.u.r.inequality, p_eq_q.parameters[0], p_eq_q.parameters[1]) + return p_neq_q + + # def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ # Composable, Composable, bool]: # output = yield from # # # # # # configuration.locale.compose_modus_ponens_paragraph_proof( # o=o) # # # # return output + + def verify_args(self, p_eq_q_hypothesis: Hypothesis, inc_hypothesis: InferredStatement, + t: TheoryElaborationSequence, echo: (None, bool) = None) -> bool: + """ + + :param p_eq_q_hypothesis: The hypothesis-statement in the parent theory. + :param inc_hypothesis: The refutation-statement Inc(Tn) where Tn is the hypothesis-theory. + :param t: The current (parent) theory. + :param echo: + :return: + """ + verify(is_in_class(p_eq_q_hypothesis, classes.hypothesis), '⌜p⌝ must be an hypothesis.', + p=p_eq_q_hypothesis, slf=self) + verify(is_in_class(inc_hypothesis, classes.inferred_proposition), + '⌜inc_p⌝ must be an inferred-statement.', inc_p=inc_hypothesis, slf=self) + verify(t.contains_theoretical_objct(p_eq_q_hypothesis), '⌜p⌝ must be in theory ⌜t⌝.', + p=p_eq_q_hypothesis, t=t, slf=self) + verify(p_eq_q_hypothesis.hypothesis_child_theory.extended_theory is t, + '⌜p.hypothetical_theory⌝ must extend the parent theory ⌜t⌝.', + p_hypothetical_theory=p_eq_q_hypothesis.hypothesis_child_theory, p=p_eq_q_hypothesis, + t=t, slf=self) + verify(inc_hypothesis.valid_proposition.relation is t.u.relations.inconsistency, + '⌜inc_p.relation⌝ must be of form (Inc(Hn)).', + inc_p_relation=inc_hypothesis.valid_proposition.relation, inc_p=inc_hypothesis, t=t, + slf=self) + # TODO: ProofByContradictionDeclaration.verify_args: check that the parent theory is + # stable??? + # TODO: ProofByContradictionDeclaration.verify_args: check that the hypothetical-theory + # is stable + return True + + +class VariableSubstitutionDeclaration(InferenceRuleDeclaration): + def __init__(self, universe_of_discourse: UniverseOfDiscourse, echo: (None, bool) = None): + symbol = 'variable-substitution' + acronym = 'vs' + abridged_name = None + auto_index = False + dashed_name = 'variable-substitution' + explicit_name = 'variable substitution inference rule' + name = 'variable substitution' + definition = StyledText(plaintext='(P, Phi) |- P\'', unicode='(P, 𝛷) ⊢ P\'') + super().__init__(definition=definition, universe_of_discourse=universe_of_discourse, + symbol=symbol, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo) + + def compose_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Overrides the generic paragraph proof method.""" + output = yield from configuration.locale.compose_variable_substitution_paragraph_proof(o=o) + return output + + def infer_formula(self, p: FormulaStatement, phi: (None, tuple[TheoreticalObject]), + t: TheoryElaborationSequence, echo: (None, bool) = None, **kwargs) -> Formula: + """Compute the formula that results from applying this inference-rule with those arguments. + + :param p: A formula statement that may contain n variables. + :param phi: A sequence of n well-formed formulae. + :param t: The current theory-elaboration-sequence. + :return: (Formula) The inferred formula. + """ + x_oset = unpack_formula(p).get_variable_ordered_set() + x_y_map = dict((x, y) for x, y in zip(x_oset, phi)) + p_prime = p.valid_proposition.substitute(substitution_map=x_y_map, target_theory=t) + return p_prime + + def verify_args(self, p: FormulaStatement, phi: (None, tuple[TheoreticalObject]), + t: TheoryElaborationSequence, echo: (None, bool) = None, **kwargs) -> bool: + """Verify if the arguments comply syntactically with the inference-rule. + """ + verify(is_in_class(p, classes.formula_statement), '⌜p⌝ must be a formula-statement.', p=p, + t=t, slf=self) + verify(t.contains_theoretical_objct(p), '⌜p⌝ must be contained in ⌜t⌝.', p=p, t=t, slf=self) + verify(isinstance(phi, tuple), '⌜phi⌝ must be a tuple.', phi=phi, t=t, slf=self) + x_oset = unpack_formula(p).get_variable_ordered_set() + verify(len(x_oset) == len(phi), + 'The cardinality of the canonically ordered free-variables.') + # Substitution objects in Y must be declared in U, + # but they may not be referenced yet in T's extension. + for y in phi: + verify(isinstance(y, TheoreticalObject), '⌜y⌝ in ⌜phi⌝ must be a theoretical-object.', + y=y, t=t, slf=self) + verify(y.u is self.u, '⌜y⌝ and ⌜self⌝ do not share the same universe-of-discourse.', + y=y, y_u=y.u, slf=self, slf_u=self.u) + + # TODO: Add a verification step: the variable is not locked. + return True + + +class AtheoreticalStatement(SymbolicObject): + """ + Definition + ---------- + An atheoretical-statement is a statement that is contained in a theory report + for commentary / explanatory purposes, but that is not mathematically constitutive + of the theory. Atheoretical-statements may be added and/or removed from a + theory without any impact to the theory sequence of proofs. + + """ + + def __init__(self, theory: TheoryElaborationSequence, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + self.theory = theory + super().__init__(universe_of_discourse=theory.universe_of_discourse, symbol=symbol, + index=index, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=paragraph_header, ref=ref, subtitle=subtitle, nameset=nameset, + echo=echo) + super()._declare_class_membership(classes.atheoretical_statement) + + +class NoteInclusion(AtheoreticalStatement): + """The Note pythonic-class models a note, comment, or remark in a theory. + + """ + + def __init__(self, t: TheoryElaborationSequence, content: str, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + + echo = prioritize_value(echo, configuration.echo_note, configuration.echo_default, False) + verify(is_in_class(t, classes.t), 'theory is not a member of declarative-class theory.', + t=t, slf=self) + universe_of_discourse = t.universe_of_discourse + paragraph_header = paragraph_headers.note if paragraph_header is None else paragraph_header + # self.statement_index = theory.crossreference_statement(self) + self.theory = t + if isinstance(content, str): + content = SansSerifNormal(content) + self._natural_language = content + self.category = paragraph_header + if nameset is None and symbol is None: + # symbol = self.category.symbol_base + symbol = paragraph_header.symbol_base + index = universe_of_discourse.index_symbol(symbol=symbol) if auto_index else index + if isinstance(nameset, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + symbol = StyledText(plaintext=nameset, text_style=text_styles.serif_italic) + index = universe_of_discourse.index_symbol(symbol=symbol) if auto_index else index + super().__init__(theory=t, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, paragraph_header=paragraph_header, ref=ref, + subtitle=subtitle, nameset=nameset, echo=False) + if echo: + self.echo() + super()._declare_class_membership(declarative_class_list.note) + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='note') + + def compose_content(self) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield self.natural_language + return True + + def compose_report(self, proof: (None, bool) = None, **kwargs): + output = yield from configuration.locale.compose_note_report(o=self, proof=proof) + return output + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def natural_language(self) -> str: + """Return the content of the note in natural-language.""" + return self._natural_language + + +section_category = ParagraphHeader(name='section', symbol_base='§', natural_name='section', + abridged_name='sect.') + + +class Section(AtheoreticalStatement): + """A (leveled) section in a theory-elaboration-sequence. + + Sections allow to organize / structure (lengthy) theory-elaboration-sequences + to improve readability. + + """ + + def __init__(self, section_title: str, t: TheoryElaborationSequence, + section_number: (None, int) = None, section_parent: (None, Section) = None, + numbering: (None, bool) = None, echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_note, configuration.echo_default, False) + numbering = prioritize_value(numbering, True) + self._section_title = section_title + self._section_parent = section_parent + self._section_level = 1 if section_parent is None else section_parent.section_level + 1 + if section_parent is not None: + section_number = section_parent.get_next_section_number(section_number) + else: + section_number = t.get_next_section_number(section_number) + self._section_number = section_number + self._numbering = numbering + prefix = '' if section_parent is None else section_parent.section_reference + '.' + self._section_reference = f'{prefix}{str(section_number)}' + self.statement_index = t.crossreference_statement(self) + self._max_subsection_number = 0 + self.category = section_category + symbol = NameSet(symbol=self.category.symbol_base, index=self.statement_index) + super().__init__(nameset=symbol, theory=t, echo=False) + super()._declare_class_membership(declarative_class_list.note) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, Composable, bool]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='section') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + yield '#' * self.section_level + yield text_dict.space + if self.numbering: + yield from SansSerifBold(self.section_reference).compose() + yield ': ' + yield from SansSerifBold(str(self.section_title).capitalize()).compose() + return True + + def echo(self): + repm.prnt(self.rep_report()) + + def get_next_section_number(self, section_number: int = None) -> int: + if section_number is None: + self._max_subsection_number += 1 + else: + self._max_subsection_number = max([self._max_subsection_number + 1, section_number]) + return self._max_subsection_number + + @property + def max_subsection_number(self) -> int: + return self._max_subsection_number + + @property + def numbering(self) -> bool: + return self._numbering + + def rep_ref(self, cap=False) -> str: + prefix = 'section' if self.section_level == 1 else 'sub-' * ( + self.section_level - 1) + 'section' + text = f'{prefix}{repm.serif_bold(self.section_reference)}' + return text + + @property + def section_level(self) -> int: + return self._section_level + + @property + def section_number(self) -> int: + return self._section_number + + @property + def section_reference(self) -> str: + return self._section_reference + + @property + def section_title(self) -> str: + return self._section_title + + +class TheoryElaborationSequence(TheoreticalObject): + """The TheoryElaboration pythonic class models a [theory-elaboration](theory-elaboration). + + """ + + def __init__(self, u: UniverseOfDiscourse, symbol: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + subtitle: (None, str) = None, extended_theory: (None, TheoryElaborationSequence) = None, + extended_theory_limit: (None, Statement) = None, stabilized: bool = False, + echo: bool = None): + echo = prioritize_value(echo, configuration.echo_theory_elaboration_sequence_declaration, + configuration.echo_default, False) + self._max_subsection_number = 0 + self._consistency = consistency_values.undetermined + self._stabilized = False + self.axiom_inclusions = tuple() + self.definition_inclusions = tuple() + self._inference_rule_inclusions = InferenceRuleInclusionDict(t=self) + self.statements = tuple() + self._extended_theory = extended_theory + self._extended_theory_limit = extended_theory_limit + self._interpretation_disclaimer = False + if nameset is None: + symbol = prioritize_value(symbol, configuration.default_theory_symbol) + index = u.index_symbol(symbol=symbol) + nameset = NameSet(symbol=symbol, index=index) + elif isinstance(nameset, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + symbol = StyledText(plaintext=nameset, text_style=text_styles.script_normal) + index = u.index_symbol(symbol=symbol) + nameset = NameSet(s=symbol, index=index) + nameset.paragraph_header = paragraph_headers.theory_elaboration_sequence + nameset.ref = ref + nameset.subtitle = subtitle + super().__init__(nameset=nameset, paragraph_header=nameset.paragraph_header, + is_theory_foundation_system=True if extended_theory is None else False, + universe_of_discourse=u, echo=False) + verify(is_in_class(u, classes.universe_of_discourse), + 'Parameter "u" is not a member of declarative-class universe-of-discourse.', u=u) + verify(extended_theory is None or is_in_class(extended_theory, classes.theory_elaboration), + 'Parameter "extended_theory" is neither None nor a member of declarative-class theory.', + u=u) + verify(extended_theory_limit is None or ( + extended_theory is not None and is_in_class(extended_theory_limit, + classes.statement) and extended_theory_limit in extended_theory.statements), + 'Parameter "theory_extension_statement_limit" is inconsistent.', u=u) + super()._declare_class_membership(classes.theory_elaboration) + if stabilized: + # It is a design choice to stabilize the theory-elaboration + # at the very end of construction (__init__()). Note that it + # is thus possible to extend a theory and, for example, + # add some new inference-rules by passing these instructions + # to the constructor. + self.stabilize() + if echo: + self.echo() + + def assure_interpretation_disclaimer(self, echo: (None, bool) = None): + """After the first usage of a contentual interpretation inference-rule, + warns the user that no semantic verification is performed.""" + echo = prioritize_value(echo, configuration.echo_default, False) + if not self._interpretation_disclaimer: + self.take_note( + 'By design, punctilious assures the syntactical correctness of theories, ' + 'but does not perform any ' + 'semantic verification. Therefore, the usage of inference-rules that interpret ' + 'natural content (i.e. ' + 'axiom-interpretation and definition-interpretation) is critically dependent on ' + 'the correctness of ' + 'the content translation performed by the theory author, from axiom or definition ' + 'natural language, ' + 'to formulae.', paragraph_header=paragraph_headers.warning, echo=echo) + self._interpretation_disclaimer = True + + def compose_article(self, proof: (None, bool) = None) -> collections.abc.Generator[ + Composable, Composable, bool]: + """Return a representation that expresses and justifies the theory.""" + # TODO: compose_article: move this outside of the theory + output = yield from configuration.locale.compose_theory_article(t=self, proof=proof) + return output + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='theory-elaboration-sequence') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_theory_declaration(t=self) + return output + + def crossreference_axiom_inclusion(self, a): + """During construction, cross-reference an axiom + with its parent theory (if it is not already cross-referenced), + and return its 0-based index in Theory.axioms.""" + assert isinstance(a, AxiomInclusion) + if a not in self.axiom_inclusions: + self.axiom_inclusions = self.axiom_inclusions + tuple([a]) + return self.axiom_inclusions.index(a) + + def crossreference_definition_endorsement(self, d): + """During construction, cross-reference an endorsement + with its parent theory (if it is not already cross-referenced), + and return its 0-based index in Theory.endorsements.""" + if d not in self.definition_inclusions: + self.definition_inclusions = self.definition_inclusions + tuple([d]) + return self.definition_inclusions.index(d) + + def crossreference_inference_rule_inclusion(self, i: InferenceRuleInclusion): + """During construction, cross-reference an inference-rule + with its parent theory-elaboration (if it is not already cross-referenced).""" + if i not in self.inference_rule_inclusions: + self.inference_rule_inclusions[i] = i + return True + else: + return False + + def crossreference_statement(self, s): + """During construction, cross-reference a statement 𝒮 + with its parent theory if it is not already cross-referenced, + and return its 0-based index in Theory.statements.""" + assert isinstance(s, (Statement, NoteInclusion, Section)) + # During construction (__init__()), the _theory property + # may not be already set. + # And calling crossreference_statement() + # may be required before calling super(), in order to + # retrieve the statement_index. + # It follows that we cannot check the consistency of the + # theory of the object under construction, like with: + # assert s.theory is self + # It follows that we must fully delegate the responsibility + # of theory consistency to the constructing object. + if s not in self.statements: + self.statements = self.statements + tuple([s]) + return self.statements.index(s) + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def extended_theory(self) -> (None, TheoryElaborationSequence): + """None if this is a root theory, the theory that this theory extends otherwise.""" + return self._extended_theory + + @property + def extended_theory_limit(self) -> (None, Statement): + """If this is a limited extended-theory, the inclusive statement-limit of the inclusion.""" + return self._extended_theory_limit + + def get_next_section_number(self, section_number: int = None) -> int: + if section_number is None: + self._max_subsection_number += 1 + else: + self._max_subsection_number = max([self._max_subsection_number + 1, section_number]) + return self._max_subsection_number + + @property + def i(self): + """Return the dictionary of inference-rule-inclusions contained in this +theory-elaboration.""" + return self.inference_rule_inclusions + + @property + def inference_rule_inclusions(self): + """Return the dictionary of inference-rule-inclusions contained in this + theory-elaboration.""" + return self._inference_rule_inclusions + + def iterate_theoretical_objcts_references(self, include_root: bool = True, + visited: (None, set) = None): + """Iterate through this and all the theoretical-objcts it references recursively. + + Theoretical-objcts may contain references to multiple and diverse other theoretical-objcts. Do not confuse this iteration of all references with iterations of objects in the theory-chain. + + :parameter include_root: + :parameter visited: + :return: + """ + visited = set() if visited is None else visited + if include_root and self not in visited: + yield self + visited.update({self}) + for statement in set(self.statements).difference(visited): + if not is_in_class(statement, declarative_class_list.atheoretical_statement): + yield statement + visited.update({statement}) + yield from statement.iterate_theoretical_objcts_references(include_root=False, + visited=visited) + if self.extended_theory is not None and self.extended_theory not in visited: + # Iterate the extended-theory. + if self.extended_theory_limit is not None: + # The extended-theory is limited + # i.e. this theory branched out before the end of the elaboration. + # Thus, we must exclude statements that are posterior to the limit. + # To do this, we simply black-list them + # by including them in the visited set. + black_list = (statement for statement in set(self.extended_theory.statements) if + statement.statement_index > self.extended_theory_limit.statement_index) + visited.update(black_list) + yield self.extended_theory + visited.update({self.extended_theory}) + yield from self.extended_theory.iterate_theoretical_objcts_references( + include_root=False, visited=visited) + + def include_axiom(self, a: AxiomDeclaration, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + paragraph_header: (None, ParagraphHeader) = None, + echo: (None, bool) = None) -> AxiomInclusion: + """Include an axiom in this theory-elaboration-sequence.""" + return AxiomInclusion(a=a, t=self, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, + paragraph_header=paragraph_header, nameset=nameset, echo=echo) + + def include_definition(self, d: DefinitionDeclaration, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None) -> DefinitionInclusion: + """Include a definition in this theory-elaboration-sequence.""" + return DefinitionInclusion(d=d, t=self, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, nameset=nameset, echo=echo) + + def iterate_statements_in_theory_chain(self, formula: (None, Formula) = None): + """Iterate through the (proven or sound) statements in the current theory-chain. + + :param formula: (conditional) Filters on formula-statements that are formula-syntactically-equivalent. + :return: + """ + if formula is not None: + formula = interpret_formula(u=self.u, arity=None, flexible_formula=formula) + for t in self.iterate_theory_chain(): + for s in t.statements: + if formula is None or (is_in_class(s, + classes.formula_statement) and s.is_formula_syntactically_equivalent_to( + formula)): + yield s + + def iterate_theory_chain(self, visited: (None, set) = None): + """Iterate over the theory-chain of this theory. + + The sequence is : this theory, this theory's extended-theory, the extended-theory's + extended-theory, etc. until the root-theory is processes. + + Note + ----- + + The theory-chain set is distinct from theory-dependency set. + The theory-chain informs of the parent package whose statements are considered + valid in the current theory. + Distinctively, package may be referenced by meta-theorizing, or in hypothesis, + or possibly other use cases. + """ + visited = set() if visited is None else visited + t = self + while t is not None: + yield t + visited.update({t}) + if t.extended_theory is not None and t.extended_theory not in visited: + t = t.extended_theory + else: + t = None + + def iterate_valid_propositions_in_theory_chain(self): + """Iterate through the valid-propositions in the current theory-chain.""" + visited = set() + for s in self.iterate_statements_in_theory_chain(): + if is_in_class(s, classes.formula_statement) and s.valid_proposition not in visited: + yield s.valid_proposition + visited.update({s.valid_proposition}) + + @property + def consistency(self) -> Consistency: + """The currently proven consistency status of this theory. + + Possible values are: + - proved-consistent, + - proved-inconsistent, + - undetermined.""" + return self._consistency + + @property + def inconsistency_introduction_inference_rule_is_included(self): + """True if the inconsistency-introduction inference-rule is included in this theory, + False otherwise.""" + if self._includes_inconsistency_introduction_inference_rule is not None: + return self._includes_inconsistency_introduction_inference_rule + elif self.extended_theory is not None: + return self.extended_theory.inconsistency_introduction_inference_rule_is_included + else: + return None + + def d(self, natural_language, symbol=None, reference=None, title=None): + """Elaborate a new definition with natural-language. Shortcut function for + t.elaborate_definition(...).""" + return self.include_definition(natural_language=natural_language, nameset=symbol, + reference=reference, title=title) + + def get_first_syntactically_equivalent_statement(self, formula: (None, Formula) = None): + """Given a formula, return the first statement that is syntactically-equivalent with it, or None if none are found. + + :param formula: + :return: + """ + return next(self.iterate_statements_in_theory_chain(formula=formula), None) + + def pose_hypothesis(self, hypothesis_formula: Formula, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None) -> Hypothesis: + """Pose a new hypothesis in the current theory.""" + hypothesis_formula = interpret_formula(u=self.u, arity=None, + flexible_formula=hypothesis_formula) + return Hypothesis(t=self, hypothesis_formula=hypothesis_formula, symbol=symbol, index=index, + auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, ref=ref, + subtitle=subtitle, nameset=nameset, echo=echo) + + def prnt(self, proof: (None, bool) = None): + repm.prnt(self.rep_report(proof=proof)) + + def prove_inconsistent(self, ii): + verify(isinstance(ii, InconsistencyIntroductionStatement), + 'The ii statement is not of type InconsistencyIntroductionStatement.', ii=ii, + theory=self) + verify(ii in self.statements, 'The ii statement is not a statement of this theory.', ii=ii, + theory=self) + self._consistency = consistency_values.proved_inconsistent + + def export_article_to_file(self, file_path, proof: (None, bool) = None, + encoding: (None, Encoding) = None): + """Export this theory to a Unicode textfile.""" + text_file = open(file_path, 'w', encoding='utf-8') + n = text_file.write(self.rep_article(encoding=encoding, proof=proof)) + text_file.close() + + def open_section(self, section_title: str, section_number: (None, int) = None, + section_parent: (None, Section) = None, numbering: (None, bool) = None, + echo: (None, bool) = None) -> Section: + """Open a new section in the current theory-elaboration-sequence.""" + return Section(section_title=section_title, section_number=section_number, + section_parent=section_parent, numbering=numbering, t=self, echo=echo) + + def rep_article(self, encoding: (None, Encoding) = None, proof: (None, bool) = None) -> str: + encoding = prioritize_value(encoding, configuration.encoding, encodings.plaintext) + return rep_composition(composition=self.compose_article(proof=proof), encoding=encoding) + + def report_inconsistency_proof(self, proof: InferredStatement): + """This method is called by InferredStatement.__init__() when the inferred-statement + proves the inconsistency of a theory.""" + verify(is_in_class(proof, classes.inferred_proposition), + '⌜proof⌝ must be an inferred-statement.', proof=proof, slf=self) + proof: Formula + proof = unpack_formula(proof) + verify(proof.relation is self.u.r.inconsistency, + 'The relation of the ⌜proof⌝ formula must be ⌜inconsistency⌝.', + proof_relation=proof.relation, proof=proof, slf=self) + verify(proof.parameters[0] is self, + 'The parameter of the ⌜proof⌝ formula must be the current theory, i.e. ⌜self⌝.', + proof_parameter=proof.parameters[0], proof=proof, slf=self) + self._consistency = consistency_values.proved_inconsistent + + @property + def stabilized(self): + """Return the stabilized property of this theory-elaboration. + """ + return self._stabilized + + def stabilize(self): + verify(not self._stabilized, 'This theory-elaboration is already stabilized.', + severity=verification_severities.warning) + self._stabilized = True + + def take_note(self, content: str, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None) -> NoteInclusion: + """Take a note, make a comment, or remark in this theory. + """ + return self.universe_of_discourse.take_note(t=self, content=content, symbol=symbol, + index=index, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=paragraph_header, ref=ref, subtitle=subtitle, nameset=nameset, + echo=echo) + + @property + def theoretical_objcts(self): + list = set() + for s in self.statements: + list.add(s) + if is_in_class(s, classes.formula): + list.add() + + +class Hypothesis(Statement): + def __init__(self, t: TheoryElaborationSequence, hypothesis_formula: Formula, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None): + paragraph_header = paragraph_headers.hypothesis + # TODO: Check that all components of the hypothetical-proposition + # are elements of the source theory-branch. + verify(hypothesis_formula.is_proposition, 'The hypothetical-formula is not a proposition.', + hypothetical_formula=hypothesis_formula, slf=self) + if isinstance(symbol, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + symbol = StyledText(plaintext=symbol, text_style=text_styles.serif_italic) + index = t.u.index_symbol(symbol=symbol) + elif symbol is None: + symbol = configuration.default_parent_hypothesis_statement_symbol + index = t.u.index_symbol(symbol=symbol) + + super().__init__(theory=t, symbol=symbol, index=index, paragraph_header=paragraph_header, + nameset=nameset, subtitle=subtitle, dashed_name=dashed_name, echo=False) + super()._declare_class_membership(declarative_class_list.hypothesis) + self._hypothesis_formula = hypothesis_formula + # When a hypothesis is posed in a theory 𝒯₁, + # ...the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + self._hypothesis_axiom_declaration = self.universe_of_discourse.declare_axiom( + f'By hypothesis, assume {hypothesis_formula.rep_formula()} is true.', echo=echo) + # ...a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + self._hypothesis_child_theory = t.universe_of_discourse.t(extended_theory=t, + extended_theory_limit=self, symbol=configuration.default_child_hypothesis_theory_symbol, + echo=echo) + # ...the axiom is included in 𝒯₂, + self._hypothesis_axiom_inclusion_in_child_theory = self.hypothesis_child_theory.include_axiom( + a=self.hypothesis_axiom_declaration, echo=echo) + # ...and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂. + self._hypothesis_statement_in_child_theory = self.hypothesis_child_theory.i.axiom_interpretation.infer_statement( + self.hypothesis_axiom_inclusion_in_child_theory, hypothesis_formula, echo=echo) + echo = prioritize_value(echo, configuration.echo_hypothesis, + configuration.echo_inferred_statement, False) + if echo: + self.echo() + + @property + def child_theory(self) -> TheoryElaborationSequence: + """A shortcut for self.hypothesis_child_theory""" + return self.hypothesis_child_theory + + @property + def child_statement(self) -> InferredStatement: + """A shortcut for self.hypothesis_statement_in_child_theory""" + return self._hypothesis_statement_in_child_theory + + def compose_class(self) -> collections.abc.Generator[Composable, Composable, True]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='hypothesis') + return True + + def compose_report(self, proof: (None, bool) = None, **kwargs): + output = yield from configuration.locale.compose_parent_hypothesis_statement_report(o=self, + proof=proof) + return output + + def echo(self): + repm.prnt(self.rep_report()) + + @property + def hypothesis_axiom_declaration(self) -> AxiomDeclaration: + """When a hypothesis is posed in a theory 𝒯₁, + the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + the axiom is included in 𝒯₂, + and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂.""" + return self._hypothesis_axiom_declaration + + @property + def hypothesis_axiom_inclusion_in_child_theory(self) -> AxiomInclusion: + """When a hypothesis is posed in a theory 𝒯₁, + the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + the axiom is included in 𝒯₂, + and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂.""" + return self._hypothesis_axiom_inclusion_in_child_theory + + @property + def hypothesis_formula(self) -> Formula: + """When a hypothesis is posed in a theory 𝒯₁, + the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + the axiom is included in 𝒯₂, + and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂.""" + return self._hypothesis_formula + + @property + def hypothesis_statement_in_child_theory(self) -> InferredStatement: + """When a hypothesis is posed in a theory 𝒯₁, + the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + the axiom is included in 𝒯₂, + and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂.""" + return self._hypothesis_statement_in_child_theory + + @property + def hypothesis_child_theory(self) -> TheoryElaborationSequence: + """When a hypothesis is posed in a theory 𝒯₁, + the hypothesis is declared (aka postulated) as an axiom in the universe-of-discourse, + a hypothetical-theory 𝒯₂ is created to store the hypothesis elaboration, + the axiom is included in 𝒯₂, + and the hypothetical-proposition is posed as an interpretation of that axiom in 𝒯₂.""" + return self._hypothesis_child_theory + + +class Relation(TheoreticalObject): + """The Relation pythonic class is the implementation of the relation theoretical-object. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, arity: int, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, formula_rep=None, signal_proposition=None, + signal_theoretical_morphism=None, implementation=None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_relation, configuration.echo_default, + False) + auto_index = prioritize_value(auto_index, configuration.auto_index, True) + assert isinstance(universe_of_discourse, UniverseOfDiscourse) + signal_proposition = False if signal_proposition is None else signal_proposition + signal_theoretical_morphism = False if signal_theoretical_morphism is None else signal_theoretical_morphism + assert isinstance(signal_proposition, bool) + assert isinstance(signal_theoretical_morphism, bool) + cat = paragraph_headers.relation_declaration + self.formula_rep = Formula.function_call if formula_rep is None else formula_rep + self.signal_proposition = signal_proposition + self.signal_theoretical_morphism = signal_theoretical_morphism + self.implementation = implementation + assert arity is not None and isinstance(arity, int) and arity > 0 + self.arity = arity + if nameset is None: + symbol = configuration.default_relation_symbol if symbol is None else symbol + index = universe_of_discourse.index_symbol(symbol=symbol) if auto_index else index + nameset = NameSet(symbol=symbol, index=index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=cat, ref=ref, subtitle=subtitle) + super().__init__(universe_of_discourse=universe_of_discourse, nameset=nameset, echo=False) + self.universe_of_discourse.cross_reference_relation(r=self) + super()._declare_class_membership(classes.relation) + if echo: + self.echo() + + def __eq__(self, other): + return hash(self) == hash(other) + + def __hash__(self): + return hash((Relation, self.nameset, self.arity)) + + def compose_class(self) -> collections.abc.Generator[Composable, Composable, bool]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='relation') + return True + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from self.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be a ') + yield rep_arity_as_text(self.arity) + yield text_dict.space + yield SerifItalic('relation') + yield SansSerifNormal(' in ') + yield from self.universe_of_discourse.compose_symbol() + yield SansSerifNormal(' (default notation: ') + yield SansSerifNormal(str(self.formula_rep)) + yield SansSerifNormal(').') + return True + + def echo(self): + repm.prnt(self.rep_report()) + + +def rep_arity_as_text(n): + match n: + case 1: + return 'unary' + case 2: + return 'binary' + case 3: + return 'ternary' + case _: + return f'{n}-ary' + + +class SimpleObjct(TheoreticalObject): + """ + Definition + ---------- + A simple-objct-component ℴ is a theoretical-object that has no special attribute, + and whose sole function is to provide the meaning of being itself. + + TODO: SimpleObjct: By design, a SimpleObjct should also be a Formula. As an immediate measure, I implement the method is_syntactic_equivalent() to make it compatible, but the data model should be improved. + """ + + def __init__(self, universe_of_discourse: UniverseOfDiscourse, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + ref: (None, str, StyledText) = None, subtitle: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_simple_objct_declaration, + configuration.echo_default, False) + super().__init__(universe_of_discourse=universe_of_discourse, symbol=symbol, index=index, + auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, ref=ref, + subtitle=subtitle, nameset=nameset, echo=False) + self.universe_of_discourse.cross_reference_simple_objct(o=self) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='simple-object') + + def compose_report(self, proof: (None, bool) = None, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + output = yield from configuration.locale.compose_simple_objct_declaration(o=self) + return output + + def echo(self): + repm.prnt(self.rep_report()) + + def is_masked_formula_similar_to(self, o2, mask, _values): + assert isinstance(o2, TheoreticalObject) + if isinstance(o2, FreeVariable): + if o2 in mask: + # o2 is a variable, and it is present in the mask. + # first, we must check if it is already in the dictionary of values. + if o2 in _values: + # the value is already present in the dictionary. + known_value = _values[o2] + if known_value is self: + # the existing value matches the newly observed value. + # until there, masked-formula-similitude is preserved. + return True, _values + else: + # the existing value does not match the newly observed value. + # masked-formula-similitude is no longer preserved. + return False, _values + else: + # the value is not present in the dictionary. + # until there, masked-formula-similitude is preserved. + _values[o2] = self + return True, _values + if not isinstance(o2, SimpleObjct): + # o1 (self) is a simple-objct, and o2 is something else. + # in consequence, masked-formula-similitude is no longer preserved. + return False, _values + # o2 is not a variable. + return self.is_formula_syntactically_equivalent_to(o2), _values + + +class SubstitutionOfEqualTerms(FormulaStatement): + """ + TODO: Develop SubstitutionOfEqualTerms + + Definition: + ----------- + A substitution-of-equal-terms is a valid rule-of-inference propositional-logic argument that, + given a proposition (phi) + given a proposition (x = y) + infers the proposition (subst(phi, x, y)) + """ + + symbol_base = '𝚂𝙾𝙴𝚃' + + def __init__(self, original_expression, equality_statement, nameset=None, + paragraphe_header=None, theory=None, reference=None, title=None): + paragraphe_header = paragraph_headers.proposition if paragraphe_header is None else paragraphe_header + # Check p_implies_q consistency + assert isinstance(theory, TheoryElaborationSequence) + assert isinstance(original_expression, FormulaStatement) + assert theory.contains_theoretical_objct(original_expression) + assert isinstance(equality_statement, FormulaStatement) + assert theory.contains_theoretical_objct(equality_statement) + assert equality_statement.valid_proposition.relation is theory.universe_of_discourse.r.equality + left_term = equality_statement.valid_proposition.parameters[0] + right_term = equality_statement.valid_proposition.parameters[1] + self.original_expression = original_expression + self.equality_statement = equality_statement + substitution_map = {left_term: right_term} + valid_proposition = original_expression.valid_proposition.substitute( + substitution_map=substitution_map, target_theory=theory, lock_variable_scope=True) + # Note: valid_proposition will be formula-syntactically-equivalent to self, + # if there are no occurrences of left_term in original_expression. + super().__init__(theory=theory, valid_proposition=valid_proposition, + paragraphe_header=paragraphe_header, nameset=nameset) + + def rep_report(self, proof: (None, bool) = None): + """Return a representation that expresses and justifies the statement. + + The representation is in two parts: + - The formula that is being stated, + - The justification for the formula.""" + output = f'{self.rep_title(cap=True)}: {self.valid_proposition.rep_formula()}' + if proof: + output = output + f'\n\t{repm.serif_bold("Substitution of equal terms")}' + output = output + f'\n\t{self.original_expression.rep_formula(expand=True):<70} │ ' \ + f'Follows from {repm.serif_bold(self.original_expression.rep_ref())}.' + output = output + f'\n\t{self.equality_statement.rep_formula(expand=True):<70} │ ' \ + f'Follows from {repm.serif_bold(self.equality_statement.rep_ref())}.' + output = output + f'\n\t{"─" * 71}┤' + output = output + f'\n\t{self.valid_proposition.rep_formula(expand=True):<70} │ ∎' + return output + f'\n' + + +class Tuple(tuple): + """Tuple subclasses the native tuple class. + The resulting supports setattr, getattr, hasattr, + which are convenient to create friendly programmatic shortcuts.""" + pass + + +class RelationDict(collections.UserDict): + """A dictionary that exposes well-known relations as properties. + + """ + + def __init__(self, u: UniverseOfDiscourse): + self.u = u + super().__init__() + # Well-known objects + self._biconditional = None + self._sequent_comma = None + self._conjunction = None + self._disjunction = None + self._equality = None + self._inconsistency = None + self._inequality = None + self._implication = None + self._is_a = None + self._map = None + self._negation = None + self._syntactic_entailment = None + + def declare(self, arity: int, symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, formula_rep=None, signal_proposition=None, + signal_theoretical_morphism=None, implementation=None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + """Declare a new relation in this universe-of-discourse. + """ + return Relation(arity=arity, formula_rep=formula_rep, signal_proposition=signal_proposition, + signal_theoretical_morphism=signal_theoretical_morphism, implementation=implementation, + universe_of_discourse=self.u, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, nameset=nameset, echo=echo) + + @property + def biconditional(self): + """The well-known biconditional relation. + + Abridged property: u.r.iif + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._biconditional is None: + self._biconditional = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, + symbol=SerifItalic(plaintext='<==>', unicode='⟺', latex='\\iff'), auto_index=False, + dashed_name='biconditional', name='biconditional') + return self._biconditional + + @property + def conjunction(self): + """The well-known conjunction relation. + + Abridged property: u.r.land + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._conjunction is None: + self._conjunction = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, + symbol=SerifItalic(plaintext='and', unicode='∧', latex='\\land'), auto_index=False, + name='and', explicit_name='conjunction') + return self._conjunction + + @property + def disjunction(self): + """The well-known disjunction relation. + + Abridged property: u.r.land + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._disjunction is None: + self._disjunction = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, auto_index=False, + symbol=SerifItalic(unicode='∨', latex='\\lor', plaintext='or'), name='or', + explicit_name='disjunction') + return self._disjunction + + @property + def eq(self): + """The well-known equality relation. + + Unabridged property: universe_of_discourse.relations.equality + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.equality + + @property + def equal(self): + """The well-known equality relation. + + Unabridged property: universe_of_discourse.relations.equality + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.equality + + @property + def equality(self): + """The well-known equality relation. + + Abridged property: u.r.equal + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._equality is None: + self._equality = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, symbol='=', auto_index=False, dashed_name='equality') + return self._equality + + @property + def inc(self): + """The well-known (theory-)inconsistent relation. + + Unabridged property: u.r.inconsistent + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.inconsistency + + @property + def iff(self): + return self.biconditional + + @property + def implication(self): + """The well-known implication relation. + + Abridged property: u.r.implies + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._implication is None: + self._implication = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, + symbol=SerifItalic(plaintext='==>', unicode='⟹', latex=r'\implies'), + auto_index=False, name='implication', explicit_name='logical implication') + return self._implication + + @property + def implies(self): + """The well-known implication relation. + + Unabridged property: u.r.implication + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.implication + + @property + def inconsistency(self): + """The well-known (theory-)inconsistent relation. + + Abridged property: u.r.inc + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._inconsistency is None: + self._inconsistency = self.declare(arity=1, formula_rep=Formula.prefix, + signal_proposition=True, symbol='Inc', auto_index=False, acronym='inc.', + name='inconsistent') + return self._inconsistency + + @property + def inequality(self): + """The well-known inequality relation. + + Abridged property: u.r.neq + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._inequality is None: + self._inequality = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, + symbol=SerifItalic(plaintext='neq', unicode='≠', latex='\\neq'), auto_index=False, + acronym='neq', name='not equal') + return self._inequality + + @property + def is_a(self): + """XXXXXXX + """ + if self._is_a is None: + self._is_a = self.declare(arity=2, formula_rep=Formula.infix, signal_proposition=True, + symbol=SerifItalic(plaintext='is-a', unicode='is-a', latex='is-a'), + auto_index=False, acronym=None, name='is a') + return self._is_a + + @property + def land(self): + """The well-known conjunction relation. + + Unabridged property: u.r.conjunction + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.conjunction + + @property + def lnot(self): + """The well-known negation relation. + + Abridged property: u.r.negation + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.negation + + @property + def lor(self): + """The well-known disjunction relation. + + Unabridged property: u.r.disjunction + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.disjunction + + @property + def map(self): + """The well-known map relation. + + Abridged property: u.r.map + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._map is None: + self._map = self.declare(arity=1, formula_rep=Formula.prefix, signal_proposition=True, + symbol=SerifItalic(plaintext='-->', unicode='\u2192', latex='\\rightarrow'), + auto_index=False, name='map') + return self._map + + @property + def negation(self): + """The well-known negation relation. + + Abridged property: u.r.lnot + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._negation is None: + self._negation = self.declare(arity=1, formula_rep=Formula.prefix, + signal_proposition=True, + symbol=SerifItalic(plaintext='not', unicode='¬', latex='\\neg'), auto_index=False, + abridged_name='not', name='negation') + return self._negation + + @property + def neq(self): + """The well-known inequality relation. + + Unabridged property: u.r.inequality + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.inequality + + @property + def proves(self): + """The well-known syntactic-entailment relation. + + Unabridged property: u.r.syntactic_entailment + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + return self.syntactic_entailment + + @property + def sequent_comma(self): + """Initially needed to express the collection of premises in inference-rule formula definitions. + + For the time being it is sufficient to implement it as a binary relation, + because our initial catalog of inference rules have one or two premises. + But at a later point, we will need to implement (0-n)-ary relations. + """ + if self._sequent_comma is None: + self._sequent_comma = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, symbol=SerifItalic(plaintext=',', unicode=',', latex=','), + auto_index=False, dashed_name='sequent-comma', name='sequent comma', + explicit_name='sequent calculus comma') + return self._sequent_comma + + @property + def syntactic_entailment(self): + """The well-known syntactic-entailment relation. + + Abridged property: u.r.proves + + If it does not exist in the universe-of-discourse, + declares it automatically. + """ + if self._syntactic_entailment is None: + self._syntactic_entailment = self.declare(arity=2, formula_rep=Formula.infix, + signal_proposition=True, + symbol=SerifItalic(plaintext='|-', unicode='⊢', latex='\\vdash'), auto_index=False, + dashed_name='syntactic-entailment', abridged_name='proves', + name='syntactic entailment') + return self._syntactic_entailment + + +FlexibleFormula = typing.Union[FormulaStatement, Formula, tuple, list] +"""See validate_flexible_statement_formula() for details.""" + + +def interpret_formula(u: UniverseOfDiscourse, arity: (None, int), + flexible_formula: FlexibleFormula) -> Formula: + """Many punctilious pythonic methods expect some Formula as input parameters. This is programmatically robust, but it may render theory code less readable for humans. In effect, one must store all formulae in variables to reuse them in composite formulae. If the number of formulae gets large, readability suffers and maintenability of variable names becomes cumbersome. To provide a friendler interface for humans, we allow passing formulae as formula, formula-statement, tuple, and lists and apply the following interpretation rules: + + If ⌜argument⌝ is of type formula, return it directly. + + If ⌜argument⌝ is of type statement-variable, retrieve its valid-proposition property. + + If ⌜argument⌝ is of type iterable, such as tuple, e.g.: (implies, q, p), we assume it is a formula in the form (relation, a1, a2, ... an) where ai are arguments. + + Note that this is complementary with the pseudo-infix notation, which uses the __or__ method and | operator to transform: p |r| q to (r, p, q). + + :param t: + :param arity: (conditional) If provided, verify the arity of the formula to assure consistency with whatever we are expecting. + :param flexible_formula: + :return: + """ + if isinstance(flexible_formula, Formula): + return flexible_formula + elif isinstance(flexible_formula, FormulaStatement): + return flexible_formula.valid_proposition + elif isinstance(flexible_formula, tuple): + if arity is None: + arity: int = len(flexible_formula) - 1 + verify(assertion=len(flexible_formula) == arity + 1, + msg='⌜argument⌝ passed as a tuple must be of length ⌜arity⌝ +1 (the +1 is the relation).', + argument=flexible_formula, arity=arity) + flexible_formula = u.f(flexible_formula[0], *flexible_formula[1:]) + return flexible_formula + else: + raise PunctiliousException('⌜argument⌝ could not be interpreted as a formula.', + argument=flexible_formula, arity=arity, u=u) + + +def interpret_statement_formula(t: TheoryElaborationSequence, arity: (None, int), + flexible_formula: FlexibleFormula): + """Many punctilious pythonic methods expect some FormulaStatement as input parameters (e.g. the infer_statement() of inference-rules). This is syntactically robust, but it may read theory code less readable. In effect, one must store all formula-statements in variables to reuse them in formula. If the number of formula-statements get large, readability suffers. To provide a friendler interface for humans, we allow passing formula-statements as formula, tuple, and lists and apply the following interpretation rules: + + If ⌜argument⌝ is of type iterable, such as tuple, e.g.: (implies, q, p), we assume it is a formula in the form (relation, a1, a2, ... an) where ai are arguments. + + Note that this is complementary with the pseudo-infix notation, which transforms: p |implies| q into a formula. + + :param t: + :param arity: + :param flexible_formula: + :return: + """ + if isinstance(flexible_formula, FormulaStatement): + return flexible_formula + else: + # ⌜argument⌝ is not a statement-formula. + # But it is expected to be interpretable as a formula. + formula = interpret_formula(u=t.u, arity=arity, flexible_formula=flexible_formula) + # We only received a formula, not a formula-statement. + # Since we require a formula-statement, + # we attempt to automatically retrieve the first occurrence + # of a formula-statement in ⌜t⌝ that is + # syntactically-equivalent to ⌜argument⌝. + flexible_formula = t.get_first_syntactically_equivalent_statement(formula=flexible_formula) + verify(assertion=flexible_formula is not None, + msg='No syntactically-equivalent formula-statement found for ⌜argument⌝.', + argument=flexible_formula, arity=arity, t=t) + return flexible_formula + + +class InferenceRuleDeclarationDict(collections.UserDict): + """A (possibly empty) collection of inference-rule declarations. + """ + + def __init__(self, u: UniverseOfDiscourse): + self.u = u + super().__init__() + # Well-known objects + self._absorption = None + self._axiom_interpretation = None + self._biconditional_elimination_1 = None + self._biconditional_elimination_2 = None + self._biconditional_introduction = None + self._conjunction_elimination_1 = None + self._conjunction_elimination_2 = None + self._conjunction_introduction = None + self._definition_interpretation = None + self._disjunction_elimination = None + self._disjunction_introduction_1 = None + self._disjunction_introduction_2 = None + self._double_negation_elimination = None + self._double_negation_introduction = None + self._equality_commutativity = None + self._equal_terms_substitution = None + self._inconsistency_introduction_1 = None + self._inconsistency_introduction_2 = None + self._inconsistency_introduction_3 = None + self._modus_ponens = None + self._proof_by_contradiction_1 = None + self._proof_by_contradiction_2 = None + self._proof_by_refutation_1 = None + self._proof_by_refutation_2 = None + self._variable_substitution = None + + @property + def absorb(self) -> AbsorptionDeclaration: + return self.absorption + + @property + def absorption(self) -> AbsorptionDeclaration: + if self._absorption is None: + self._absorption = AbsorptionDeclaration(universe_of_discourse=self.u) + return self._absorption + + @property + def axiom_interpretation(self) -> AxiomInterpretationDeclaration: + if self._axiom_interpretation is None: + self._axiom_interpretation = AxiomInterpretationDeclaration( + universe_of_discourse=self.u) + return self._axiom_interpretation + + @property + def bel(self) -> BiconditionalElimination1Declaration: + return self.biconditional_elimination_1 + + @property + def ber(self) -> BiconditionalElimination2Declaration: + return self.biconditional_elimination_2 + + @property + def bi(self) -> BiconditionalIntroductionDeclaration: + return self.biconditional_introduction + + @property + def biconditional_elimination_1(self) -> BiconditionalElimination1Declaration: + if self._biconditional_elimination_1 is None: + self._biconditional_elimination_1 = BiconditionalElimination1Declaration( + universe_of_discourse=self.u) + return self._biconditional_elimination_1 + + @property + def biconditional_elimination_2(self) -> BiconditionalElimination2Declaration: + if self._biconditional_elimination_2 is None: + self._biconditional_elimination_2 = BiconditionalElimination2Declaration( + universe_of_discourse=self.u) + return self._biconditional_elimination_2 + + @property + def biconditional_introduction(self) -> BiconditionalIntroductionDeclaration: + if self._biconditional_introduction is None: + self._biconditional_introduction = BiconditionalIntroductionDeclaration( + universe_of_discourse=self.u) + return self._biconditional_introduction + + @property + def cel(self) -> ConjunctionElimination1Declaration: + return self.conjunction_elimination_1 + + @property + def cer(self) -> ConjunctionElimination2Declaration: + return self.conjunction_elimination_2 + + @property + def ci(self) -> ConjunctionIntroductionDeclaration: + return self.conjunction_introduction + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='inference-rule') + + @property + def conjunction_elimination_1(self) -> ConjunctionElimination1Declaration: + # TODO: inference-rule: conjunction_elimination_1: Migrate to specialized classes + + if self._conjunction_elimination_1 is None: + self._conjunction_elimination_1 = ConjunctionElimination1Declaration( + universe_of_discourse=self.u) + return self._conjunction_elimination_1 + + @property + def conjunction_elimination_2(self) -> ConjunctionElimination2Declaration: + if self._conjunction_elimination_2 is None: + self._conjunction_elimination_2 = ConjunctionElimination2Declaration( + universe_of_discourse=self.u) + return self._conjunction_elimination_2 + + @property + def conjunction_introduction(self) -> ConjunctionIntroductionDeclaration: + if self._conjunction_introduction is None: + self._conjunction_introduction = ConjunctionIntroductionDeclaration( + universe_of_discourse=self.u) + return self._conjunction_introduction + + @property + def definition_interpretation(self) -> DefinitionInterpretationDeclaration: + if self._definition_interpretation is None: + self._definition_interpretation = DefinitionInterpretationDeclaration( + universe_of_discourse=self.u) + return self._definition_interpretation + + @property + def dil(self) -> DisjunctionIntroduction1Declaration: + return self.disjunction_introduction_1 + + @property + def dir(self) -> DisjunctionIntroduction2Declaration: + return self.disjunction_introduction_2 + + @property + def disjunction_introduction_1(self) -> DisjunctionIntroduction1Declaration: + if self._disjunction_introduction_1 is None: + self._disjunction_introduction_1 = DisjunctionIntroduction1Declaration( + universe_of_discourse=self.u) + return self._disjunction_introduction_1 + + @property + def disjunction_introduction_2(self) -> DisjunctionIntroduction2Declaration: + if self._disjunction_introduction_2 is None: + self._disjunction_introduction_2 = DisjunctionIntroduction2Declaration( + universe_of_discourse=self.u) + return self._disjunction_introduction_2 + + @property + def dne(self) -> DoubleNegationEliminationDeclaration: + return self.double_negation_elimination + + @property + def dni(self) -> DoubleNegationIntroductionDeclaration: + return self.double_negation_introduction + + @property + def double_negation_elimination(self) -> DoubleNegationEliminationDeclaration: + if self._double_negation_elimination is None: + self._double_negation_elimination = DoubleNegationEliminationDeclaration( + universe_of_discourse=self.u) + return self._double_negation_elimination + + @property + def double_negation_introduction(self) -> DoubleNegationIntroductionDeclaration: + if self._double_negation_introduction is None: + self._double_negation_introduction = DoubleNegationIntroductionDeclaration( + universe_of_discourse=self.u) + return self._double_negation_introduction + + @property + def ec(self) -> EqualityCommutativityDeclaration: + return self.equality_commutativity + + @property + def equality_commutativity(self) -> EqualityCommutativityDeclaration: + if self._equality_commutativity is None: + self._equality_commutativity = EqualityCommutativityDeclaration( + universe_of_discourse=self.u) + return self._equality_commutativity + + @property + def equal_terms_substitution(self) -> EqualTermsSubstitutionDeclaration: + if self._equal_terms_substitution is None: + self._equal_terms_substitution = EqualTermsSubstitutionDeclaration( + universe_of_discourse=self.u) + return self._equal_terms_substitution + + @property + def ets(self) -> EqualTermsSubstitutionDeclaration: + return self.equal_terms_substitution + + @property + def ii1(self) -> InconsistencyIntroduction1Declaration: + return self.inconsistency_introduction_1 + + @property + def ii2(self) -> InconsistencyIntroduction2Declaration: + return self.inconsistency_introduction_2 + + @property + def ii3(self) -> InconsistencyIntroduction3Declaration: + return self.inconsistency_introduction_3 + + @property + def inconsistency_introduction_1(self) -> InconsistencyIntroduction1Declaration: + if self._inconsistency_introduction_1 is None: + self._inconsistency_introduction_1 = InconsistencyIntroduction1Declaration( + universe_of_discourse=self.u) + return self._inconsistency_introduction_1 + + @property + def inconsistency_introduction_2(self) -> InconsistencyIntroduction2Declaration: + if self._inconsistency_introduction_2 is None: + self._inconsistency_introduction_2 = InconsistencyIntroduction2Declaration( + universe_of_discourse=self.u) + return self._inconsistency_introduction_2 + + @property + def inconsistency_introduction_3(self) -> InconsistencyIntroduction3Declaration: + if self._inconsistency_introduction_3 is None: + self._inconsistency_introduction_3 = InconsistencyIntroduction3Declaration( + universe_of_discourse=self.u) + return self._inconsistency_introduction_3 + + @property + def modus_ponens(self) -> ModusPonensDeclaration: + if self._modus_ponens is None: + self._modus_ponens = ModusPonensDeclaration(universe_of_discourse=self.u) + return self._modus_ponens + + @property + def mp(self) -> InferenceRuleDeclaration: + return self.modus_ponens + + @property + def pbc1(self) -> ProofByContradiction1Declaration: + return self.proof_by_contradiction_1 + + @property + def pbc2(self) -> ProofByContradiction2Declaration: + return self.proof_by_contradiction_2 + + @property + def pbr(self) -> ProofByRefutation1Declaration: + return self.proof_by_refutation_1 + + @property + def proof_by_contradiction_1(self) -> ProofByContradiction1Declaration: + if self._proof_by_contradiction_1 is None: + self._proof_by_contradiction_1 = ProofByContradiction1Declaration( + universe_of_discourse=self.u) + return self._proof_by_contradiction_1 + + @property + def proof_by_contradiction_2(self) -> ProofByContradiction2Declaration: + if self._proof_by_contradiction_2 is None: + self._proof_by_contradiction_2 = ProofByContradiction2Declaration( + universe_of_discourse=self.u) + return self._proof_by_contradiction_2 + + @property + def proof_by_refutation_1(self) -> ProofByRefutation1Declaration: + if self._proof_by_refutation_1 is None: + self._proof_by_refutation_1 = ProofByRefutation1Declaration( + universe_of_discourse=self.u) + return self._proof_by_refutation_1 + + @property + def proof_by_refutation_2(self) -> ProofByRefutation2Declaration: + if self._proof_by_refutation_2 is None: + self._proof_by_refutation_2 = ProofByRefutation2Declaration( + universe_of_discourse=self.u) + return self._proof_by_refutation_2 + + @property + def variable_substitution(self) -> VariableSubstitutionDeclaration: + if self._variable_substitution is None: + self._variable_substitution = VariableSubstitutionDeclaration( + universe_of_discourse=self.u) + return self._variable_substitution + + @property + def vs(self) -> VariableSubstitutionDeclaration: + return self.variable_substitution + + +class AbsorptionInclusion(InferenceRuleInclusion): + """The inclusion of :ref:`absorption_math_concept` as a valid :ref:`inference-rule` in the :ref:`theory-elaboration-sequence`. + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.absorption + dashed_name = 'absorption' + abridged_name = 'absorp.' + name = 'absorption' + explicit_name = 'absorption inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, echo=echo, proof=proof) + + def infer_formula(self, p_implies_q: (None, Formula, FormulaStatement) = None, + echo: (None, bool) = None): + """Apply the absorption inference-rule and return the inferred-formula. + + :param p_implies_q: (mandatory) The implication statement. + :return: The inferred formula q. + """ + return super().infer_formula(p_implies_q, echo=echo) + + def infer_statement(self, p_implies_q: (None, tuple, list, Formula, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the absorption inference-rule and return the inferred-statement. + + :param p_implies_q: (mandatory) The implication statement. + :return: An inferred-statement proving p implies p and q in the current theory. + """ + p_implies_q = interpret_statement_formula(t=self.t, arity=2, flexible_formula=p_implies_q) + return super().infer_statement(p_implies_q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class AxiomInterpretationInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.axiom_interpretation + dashed_name = 'axiom-interpretation' + acronym = 'ai' + abridged_name = None + name = 'axiom interpretation' + explicit_name = 'axiom interpretation inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, axiom: (None, AxiomInclusion) = None, formula: (None, Formula) = None, + echo: (None, bool) = None): + """Apply the axiom-interpretation inference-rule and return the inferred-formula. + + :param axiom: (mandatory) The axiom-inclusion statement. This proves that the axiom is + part of the theory. + :param formula: (mandatory) The interpretation of the axiom as a formula. + :return: An inferred-statement proving the formula in the current theory. + """ + return super().infer_formula(axiom, formula, echo=echo) + + def infer_statement(self, axiom: (None, AxiomInclusion) = None, formula: (None, Formula) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the axiom-interpretation inference-rule and return the inferred-statement. + + :param axiom: (mandatory) The axiom-inclusion statement. This proves that the axiom is + part of the theory. + :param formula: (mandatory) The interpretation of the axiom as a formula. + :return: An inferred-statement proving the formula in the current theory. + """ + formula = interpret_formula(u=self.u, arity=None, flexible_formula=formula) + return super().infer_statement(axiom, formula, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class BiconditionalElimination1Inclusion(InferenceRuleInclusion): + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.biconditional_elimination_1 + dashed_name = 'biconditional-elimination-1' + acronym = 'be1' + abridged_name = None + name = 'biconditional elimination #1' + explicit_name = 'biconditional elimination #1 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_iff_q: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_iff_q, echo=echo) + + def infer_statement(self, p_iff_q: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the biconditional elimination #1 inference-rule and return the + inferred-statement. + + :param p_iff_q: (mandatory) The biconditional statement. + :return: The proven inferred-statement p implies q in the current theory. + """ + return super().infer_statement(p_iff_q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class BiconditionalElimination2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.biconditional_elimination_2 + dashed_name = 'biconditional-elimination-2' + acronym = 'be2' + abridged_name = None + name = 'biconditional elimination #2' + explicit_name = 'biconditional elimination #2 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_iff_q: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_iff_q, echo=echo) + + def infer_statement(self, p_iff_q: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the biconditional elimination #2 inference-rule and return the + inferred-statement. + + :param p_iff_q: (mandatory) The biconditional statement. + :return: The proven inferred-statement p implies q in the current theory. + """ + return super().infer_statement(p_iff_q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class BiconditionalIntroductionInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.biconditional_introduction + dashed_name = 'biconditional-introduction' + acronym = 'bi' + abridged_name = None + name = 'biconditional introduction' + explicit_name = 'biconditional introduction inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_implies_q: (tuple, Formula, FormulaStatement) = None, + q_implies_p: (tuple, Formula, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_iff_q, echo=echo) + + def infer_statement(self, p_implies_q: (tuple, Formula, FormulaStatement) = None, + q_implies_p: (tuple, Formula, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the biconditional elimination #2 inference-rule and return the + inferred-statement. + + :param p_iff_q: (mandatory) The biconditional statement. + :return: The proven inferred-statement p implies q in the current theory. + """ + return super().infer_statement(p_implies_q, q_implies_p, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ConjunctionElimination1Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.conjunction_elimination_1 + dashed_name = 'conjunction-elimination-1' + acronym = 'ce1' + abridged_name = None + name = 'conjunction elimination #1' + explicit_name = 'conjunction elimination #1 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_and_q: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_and_q, echo=echo) + + def infer_statement(self, p_and_q: (None, FormulaStatement) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the conjunction elimination #1 inference-rule and return the + inferred-statement. + + :param p_and_q: + :return: The proven inferred-statement p implies q in the current theory. + """ + return super().infer_statement(p_and_q, ref=ref, paragraph_header=paragraph_header, + subtitle=subtitle, echo=echo) + + +class ConjunctionElimination2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.conjunction_elimination_2 + dashed_name = 'conjunction-elimination-2' + acronym = 'bel' + abridged_name = 'conj. elim. right' + name = 'conjunction elimination #2' + explicit_name = 'conjunction elimination #2 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_and_q: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_and_q, echo=echo) + + def infer_statement(self, p_and_q: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the conjunction elimination #2 inference-rule and return the + inferred-statement. + + :param p_and_q: (mandatory) The conjunction statement. + :return: The proven inferred-statement p implies q in the current theory. + """ + return super().infer_statement(p_and_q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ConjunctionIntroductionInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.conjunction_introduction + dashed_name = 'conjunction-introduction' + acronym = 'ci' + abridged_name = 'conj.-intro.' + name = 'conjunction introduction' + explicit_name = 'conjunction introduction inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, Formula, FormulaStatement) = None, + q: (None, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the :ref:`conjunction-introduction` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula-statement of the form :math:`Q` . + :param echo: + :return: The resulting formula :math:`\\left( P \\land Q \\right)` . + """ + p = interpret_formula(u=self.t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=self.t.u, arity=None, flexible_formula=q) + return super().infer_formula(p, q, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + q: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the :ref:`conjunction-introduction` :ref:`inference-rule` and return the resulting inferred-statement. + + :param p: (mandatory) A formula-statement of the form: :math:`P`. + :param q: (mandatory) A formula-statement of the form: :math:`Q`. + :param nameset: + :param ref: + :param paragraph_header: + :param subtitle: + :param echo: + :return: The resulting inferred-statement: :math:`\\left( P \\land Q \\right)` . + """ + p = interpret_statement_formula(t=self.t, arity=None, flexible_formula=p) + q = interpret_statement_formula(t=self.t, arity=None, flexible_formula=q) + return super().infer_statement(p, q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class DefinitionInterpretationInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.definition_interpretation + dashed_name = 'definition-interpretation' + acronym = 'di' + abridged_name = None + name = 'definition interpretation' + explicit_name = 'definition interpretation inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, definition: (None, DefinitionInclusion) = None, + formula: (None, Formula) = None, echo: (None, bool) = None): + """Apply the definition-interpretation inference-rule and return the inferred-formula. + + :param definition: (mandatory) The definition-inclusion statement. This proves that the definition is + part of the theory. + :param formula: (mandatory) The interpretation of the definition as a formula. + :return: An inferred-statement proving the formula in the current theory. + """ + return super().infer_formula(definition, formula, echo=echo) + + def infer_statement(self, definition: (None, DefinitionInclusion) = None, + formula: (None, FlexibleFormula) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the definition-interpretation inference-rule and return the inferred-statement. + + :param definition: (mandatory) The definition-inclusion statement. This proves that the definition is + part of the theory. + :param formula: (mandatory) The interpretation of the definition as a formula. + :return: An inferred-statement proving the formula in the current theory. + """ + formula = interpret_formula(u=self.u, arity=None, flexible_formula=formula) + return super().infer_statement(definition, formula, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class DisjunctionIntroduction1Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.disjunction_introduction_1 + dashed_name = 'disjunction-introduction-1' + acronym = 'di1' + abridged_name = None + name = 'disjunction introduction #1' + explicit_name = 'disjunction introduction #1 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, Formula, FormulaStatement) = None, + q: (None, Formula, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the :ref:`disjunction-introduction-1` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param echo: + :return: The resulting formula :math:`\\left( P \\lor Q \\right)` . + """ + p = interpret_formula(u=self.t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=self.t.u, arity=None, flexible_formula=q) + return super().infer_formula(p, q, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + q: (None, Formula, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the :ref:`disjunction-introduction-1` :ref:`inference-rule` and return the resulting inferred-statement. + + :param p: (mandatory) A formula-statement of the form: :math:`P`. + :param q: (mandatory) A formula of the form: :math:`Q`. + :param nameset: + :param ref: + :param paragraph_header: + :param subtitle: + :param echo: + :return: The resulting inferred-statement: :math:`\\left( P \\lor Q \\right)` . + """ + p = interpret_statement_formula(t=self.t, arity=None, flexible_formula=p) + q = interpret_formula(u=self.u, arity=None, flexible_formula=q) + return super().infer_statement(p, q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class DisjunctionIntroduction2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.disjunction_introduction_2 + dashed_name = 'disjunction-introduction-2' + acronym = 'di2' + abridged_name = None + name = 'disjunction introduction #2' + explicit_name = 'disjunction introduction #2 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, Formula, FormulaStatement) = None, + q: (None, Formula, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the :ref:`disjunction-introduction-2` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula-statement of the form :math:`P` . + :param q: (mandatory) A formula of the form :math:`Q` . + :param echo: + :return: The resulting formula :math:`\\left( P \\lor Q \\right)` . + """ + p = interpret_formula(u=self.t.u, arity=None, flexible_formula=p) + q = interpret_formula(u=self.t.u, arity=None, flexible_formula=q) + return super().infer_formula(p, q, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + q: (None, Formula, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the :ref:`disjunction-introduction-2` :ref:`inference-rule` and return the resulting inferred-statement. + + :param p: (mandatory) A formula-statement of the form: :math:`P`. + :param q: (mandatory) A formula of the form: :math:`Q`. + :param nameset: + :param ref: + :param paragraph_header: + :param subtitle: + :param echo: + :return: The resulting inferred-statement: :math:`\\left( P \\lor Q \\right)` . + """ + p = interpret_statement_formula(t=self.t, arity=None, flexible_formula=p) + q = interpret_formula(u=self.u, arity=None, flexible_formula=q) + return super().infer_statement(p, q, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class DoubleNegationEliminationInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.double_negation_elimination + dashed_name = 'double-negation-elimination' + acronym = 'dne' + abridged_name = 'double neg. elim.' + name = 'double negation elimination' + explicit_name = 'double negation elimination inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, not_not_p: (None, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the double-negation-elimination inference-rule and return the inferred-formula. + """ + return super().infer_formula(not_not_p, echo=echo) + + def infer_statement(self, not_not_p: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the double-negation-elimination inference-rule and return the inferred-statement. + + :param not_not_p: (mandatory) + :return: An inferred-statement proving p in the current theory. + """ + not_not_p = interpret_statement_formula(t=self.t, arity=1, flexible_formula=not_not_p) + return super().infer_statement(not_not_p, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class DoubleNegationIntroductionInclusion(InferenceRuleInclusion): + """The inclusion of the :ref:`double-negation-introduction` :ref:`inference-rule` as valid in the target :ref:`theory-elaboration-sequence`. + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.double_negation_introduction + dashed_name = 'double-negation-introduction' + acronym = 'dni' + abridged_name = 'double neg. intro.' + name = 'double negation introduction' + explicit_name = 'double negation introduction inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, Formula, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the :ref:`double-negation-introduction` :ref:`inference-rule` and return the resulting formula. + + :param p: (mandatory) A formula or formula-statement of the form: :math:`P` . + :param echo: + :return: The resulting formula: :math:`\\lnot \\left( \\lnot \\left( P \\right) \\right)` . + """ + return super().infer_formula(p, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the :ref:`double-negation-introduction` :ref:`inference-rule` and return the resulting inferred-statement. + + :param p: (mandatory) A formula-statement of the form: :math:`P`. + :param nameset: + :param ref: + :param paragraph_header: + :param subtitle: + :param echo: + :return: The resulting inferred-statement: :math:`\\lnot \\left( \\lnot \\left( P \\right) \\right)`. + """ + p = interpret_statement_formula(t=self.t, arity=1, flexible_formula=p) + return super().infer_statement(p, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class EqualityCommutativityInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.equality_commutativity + dashed_name = 'equality-commutativity' + acronym = 'ec' + abridged_name = None + name = 'equality commutativity' + explicit_name = 'equality commutativity inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, x_equal_y: (None, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the equality-commutativity inference-rule and return the inferred-formula. + """ + return super().infer_formula(x_equal_y, echo=echo) + + def infer_statement(self, x_equal_y: (None, FormulaStatement) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + return super().infer_statement(x_equal_y, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class EqualTermsSubstitutionInclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.equal_terms_substitution + dashed_name = 'equal-terms-substitution' + acronym = 'ets' + abridged_name = None + name = 'equal terms substitution' + explicit_name = 'equal terms substitution inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, FormulaStatement) = None, + q_equal_r: (None, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the equal-terms-substitution inference-rule and return the inferred-formula. + """ + return super().infer_formula(p, q_equal_r, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + x_equal_y: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + return super().infer_statement(p, x_equal_y, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class InconsistencyIntroduction1Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.inconsistency_introduction_1 + dashed_name = 'inconsistency-introduction-1' + acronym = 'ii1' + abridged_name = None + name = 'inconsistency introduction #1' + explicit_name = 'inconsistency introduction #1 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, FormulaStatement) = None, + not_p: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + t: (None, TheoryElaborationSequence) = None, echo: (None, bool) = None): + """Apply the inconsistency-introduction inference-rule and return the inferred-formula. + """ + return super().infer_formula(p, not_p, inconsistent_theory, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + not_p: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the inconsistency-introduction inference-rule and return the inferred-statement. + + :param p: (mandatory) . + :param not_p: (mandatory) . + :param inconsistent_theory: (conditional) . + :return: An inferred-statement proving p in the current theory. + """ + if inconsistent_theory is None and p.t is not_p.t: + # The inconsistent_theory can be unambiguously defaulted + # when both p and not_p are contained in the same theory. + inconsistent_theory = p.t + return super().infer_statement(p, not_p, inconsistent_theory, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class InconsistencyIntroduction2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.inconsistency_introduction_2 + dashed_name = 'inconsistency-introduction-2' + acronym = 'ii2' + abridged_name = None + name = 'inconsistency introduction #2' + explicit_name = 'inconsistency introduction #2 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, x_eq_y: (None, FormulaStatement) = None, + x_neq_y: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + t: (None, TheoryElaborationSequence) = None, echo: (None, bool) = None): + """Apply the inconsistency-introduction inference-rule and return the inferred-formula. + """ + return super().infer_formula(x_eq_y, x_neq_y, inconsistent_theory, echo=echo) + + def infer_statement(self, x_eq_y: (None, FormulaStatement) = None, + x_neq_y: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the inconsistency-introduction inference-rule and return the inferred-statement. + + :param p: (mandatory) . + :param not_p: (mandatory) . + :param inconsistent_theory: (conditional) . + :return: An inferred-statement proving p in the current theory. + """ + if inconsistent_theory is None and x_eq_y.t is x_neq_y.t: + # The inconsistent_theory can be unambiguously defaulted + # when both p and not_p are contained in the same theory. + inconsistent_theory = x_eq_y.t + x_eq_y = interpret_statement_formula(t=inconsistent_theory, arity=2, + flexible_formula=x_eq_y) + x_neq_y = interpret_statement_formula(t=inconsistent_theory, arity=2, + flexible_formula=x_neq_y) + return super().infer_statement(x_eq_y, x_neq_y, inconsistent_theory, nameset=nameset, + ref=ref, paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class InconsistencyIntroduction3Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.inconsistency_introduction_3 + dashed_name = 'inconsistency-introduction-3' + acronym = 'ii3' + abridged_name = None + name = 'inconsistency introduction #3' + explicit_name = 'inconsistency introduction #3 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_neq_p: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + t: (None, TheoryElaborationSequence) = None, echo: (None, bool) = None): + """Apply the inconsistency-introduction inference-rule and return the inferred-formula. + """ + return super().infer_formula(p_neq_p, inconsistent_theory, echo=echo) + + def infer_statement(self, p_neq_p: (None, FormulaStatement) = None, + inconsistent_theory: (None, TheoryElaborationSequence) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the inconsistency-introduction inference-rule and return the inferred-statement. + + :param p: (mandatory) . + :param not_p: (mandatory) . + :param inconsistent_theory: (conditional) . + :return: An inferred-statement proving p in the current theory. + """ + if inconsistent_theory is None: + # The inconsistent_theory can be unambiguously defaulted + # when all terms are contained in the same theory. + inconsistent_theory = p_neq_p.t + return super().infer_statement(p_neq_p, inconsistent_theory, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ModusPonensInclusion(InferenceRuleInclusion): + """The inclusion of :ref:`modus-ponens` as a valid :ref:`inference-rule` in a :ref:`theory-elaboration-sequence`. + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.modus_ponens + dashed_name = 'modus-ponens' + acronym = 'mp' + abridged_name = None + name = 'modus ponens' + explicit_name = 'modus ponens inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_implies_q: (tuple, Formula, FormulaStatement) = None, + p: (tuple, Formula, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the modus-ponens inference-rule and return the inferred-formula. + + :param p_implies_q: (mandatory) The implication statement. + :param p: (mandatory) The p statement, proving that p is true in the current theory. + :return: The inferred formula q. + """ + return super().infer_formula(p_implies_q, p, echo=echo) + + def infer_statement(self, p_implies_q: (None, FormulaStatement) = None, + p: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the modus-ponens inference-rule and return the inferred-statement. + + :param p_implies_q: (mandatory) The implication statement. + :param p: (mandatory) The p statement, proving that p is true in the current theory. + :return: An inferred-statement proving p in the current theory. + """ + p_implies_q = interpret_statement_formula(t=self.t, arity=2, flexible_formula=p_implies_q) + p = interpret_statement_formula(t=self.t, arity=None, flexible_formula=p) + return super().infer_statement(p_implies_q, p, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ProofByContradiction1Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.proof_by_contradiction_1 + dashed_name = 'proof-by-contradiction-1' + acronym = 'pbc1' + abridged_name = None + name = 'proof by contradiction #1' + explicit_name = 'proof by contradiction #1 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, not_p_hypothesis: (None, Hypothesis) = None, + inc_hypothesis: (None, FormulaStatement) = None, echo: (None, bool) = None) -> Formula: + """Apply the proof-by-contradiction inference-rule and return the inferred-formula. + + :param not_p_hypothesis: (mandatory) The (¬P) hypothesis-statement. + :param inc_hypothesis: (mandatory) The proof of inconsistency of the not_p +hypothetical-theory: Inc(¬P). + :return: The inferred formula . + """ + return super().infer_formula(not_p_hypothesis, inc_hypothesis, echo=echo) + + def infer_statement(self, not_p_hypothesis: (None, FormulaStatement) = None, + inc_hypothesis: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the modus-ponens inference-rule and return the inferred-statement. + + :param not_p_hypothesis: (mandatory) The implication statement. + :param inc_hypothesis: (mandatory) The p statement, proving that p is true in the current theory. + :return: An inferred-statement proving p in the current theory. + """ + return super().infer_statement(not_p_hypothesis, inc_hypothesis, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ProofByContradiction2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.proof_by_contradiction_2 + dashed_name = 'proof-by-contradiction-2' + acronym = 'pbc2' + abridged_name = None + name = 'proof by contradiction #2' + explicit_name = 'proof by contradiction #2 inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, x_neq_y_hypothesis: (None, Hypothesis) = None, + inc_hypothesis: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(x_neq_y_hypothesis, inc_hypothesis, echo=echo) + + def infer_statement(self, x_neq_y_hypothesis: (None, FormulaStatement) = None, + inc_hypothesis: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + return super().infer_statement(x_neq_y_hypothesis, inc_hypothesis, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ProofByRefutation1Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.proof_by_refutation_1 + dashed_name = 'proof-by-refutation' + acronym = 'pbr' + abridged_name = None + name = 'proof by refutation' + explicit_name = 'proof by refutation inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_hypothesis: (None, Hypothesis) = None, + inc_hypothesis: (None, FormulaStatement) = None, echo: (None, bool) = None): + """Apply the :ref:`proof-by-refutation-1` :ref:`inference-rule` and return the inferred-formula. + + :param p_hypothesis: (mandatory) The :math:`\\neg \\mathbf{P}` hypothesis. + :param inc_hypothesis: (mandatory) The proof of inconsistency of the :math:`\\neg \\mathbf{P}` hypothesis :math:`Inc\\left(\\mathcal{H}\\right)` . + :param echo: + :return: The inferred formula: :math:`\\mathbf{P}` . + """ + return super().infer_formula(p_hypothesis, inc_hypothesis, echo=echo) + + def infer_statement(self, p_hypothesis: (None, FormulaStatement) = None, + inc_hypothesis: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + """Apply the modus-ponens inference-rule and return the inferred-statement. + + :param p_hypothesis: (mandatory) The implication statement. + :param inc_hypothesis: (mandatory) The p statement, proving that p is true in the current theory. + :return: An inferred-statement proving p in the current theory. + """ + return super().infer_statement(p_hypothesis, inc_hypothesis, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class ProofByRefutation2Inclusion(InferenceRuleInclusion): + """ + + """ + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.proof_by_refutation_2 + dashed_name = 'proof-by-refutation-of-equality' + acronym = 'pbre' + abridged_name = None + name = 'proof by refutation of equality' + explicit_name = 'proof by refutation of equality inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p_eq_q_hypothesis: (None, Hypothesis) = None, + inc_hypothesis: (None, FormulaStatement) = None, echo: (None, bool) = None): + return super().infer_formula(p_eq_q_hypothesis, inc_hypothesis, echo=echo) + + def infer_statement(self, p_eq_q_hypothesis: (None, FormulaStatement) = None, + inc_hypothesis: (None, FormulaStatement) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, paragraph_header: (None, ParagraphHeader) = None, + subtitle: (None, str) = None, echo: (None, bool) = None) -> InferredStatement: + return super().infer_statement(p_eq_q_hypothesis, inc_hypothesis, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class VariableSubstitutionInclusion(InferenceRuleInclusion): + + def __init__(self, t: TheoryElaborationSequence, echo: (None, bool) = None, + proof: (None, bool) = None): + i = t.universe_of_discourse.inference_rules.variable_substitution + dashed_name = 'variable-substitution' + acronym = 'vs' + abridged_name = None + name = 'variable substitution' + explicit_name = 'variable substitution inference rule' + super().__init__(t=t, i=i, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, echo=echo, + proof=proof) + + def infer_formula(self, p: (None, FormulaStatement) = None, + phi: (None, tuple[TheoreticalObject]) = None, echo: (None, bool) = None): + return super().infer_formula(p, phi, echo=echo) + + def infer_statement(self, p: (None, FormulaStatement) = None, + phi: (None, TheoreticalObject, tuple[TheoreticalObject]) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + paragraph_header: (None, ParagraphHeader) = None, subtitle: (None, str) = None, + echo: (None, bool) = None) -> InferredStatement: + """Apply the variable-substitution inference-rule and return the inferred-statement. + + :param p: + :param phi: + :param nameset: + :param ref: + :param paragraph_header: + :param subtitle: + :param echo: + :return: + """ + p = interpret_statement_formula(t=self.t, arity=None, flexible_formula=p) + if isinstance(phi, TheoreticalObject): + # If phi is passed as an theoretical-object, + # embed it into a tuple as we expect tuple[TheoreticalObject] as input type. + phi = tuple([phi]) + return super().infer_statement(p, phi, nameset=nameset, ref=ref, + paragraph_header=paragraph_header, subtitle=subtitle, echo=echo) + + +class InferenceRuleInclusionDict(collections.UserDict): + """The repository of inference-rules included in a theory. In complement, this object exposes + well-known inference-rules as easily accessible python properties. Accessing these properties + automatically include (aka recognizes as well-founded and valid) the corresponding + inference-rule in the current theory. + + """ + + def __init__(self, t: TheoryElaborationSequence): + self.t = t + super().__init__() + # Well-known objects + self._absorption = None + self._axiom_interpretation = None + self._biconditional_elimination_1 = None + self._biconditional_elimination_2 = None + self._biconditional_introduction = None + self._conjunction_elimination_1 = None + self._conjunction_elimination_2 = None + self._conjunction_introduction = None + self._definition_interpretation = None + self._disjunction_elimination = None # TODO: IMPLEMENT disjunction_elimination + self._disjunction_introduction_1 = None + self._disjunction_introduction_2 = None + self._double_negation_elimination = None + self._double_negation_introduction = None + self._equality_commutativity = None + self._equal_terms_substitution = None + self._inconsistency_introduction_1 = None + self._inconsistency_introduction_2 = None + self._inconsistency_introduction_3 = None + self._modus_ponens = None + self._proof_by_contradiction_1 = None + self._proof_by_contradiction_2 = None + self._proof_by_refutation_1 = None + self._proof_by_refutation_2 = None + self._variable_substitution = None + + @property + def absorb(self) -> AbsorptionInclusion: + """The well-known absorption inference-rule: (P ⟹ Q) ⊢ (P ⟹ (P ∧ Q)). + + Unabridged property: u.i.absorption + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.absorption + + @property + def absorption(self) -> AbsorptionInclusion: + """The well-known absorption inference-rule: (P ⟹ Q) ⊢ (P ⟹ (P ∧ Q)). + + Abridged property: u.i.absorb + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._absorption is None: + self._absorption = AbsorptionInclusion(t=self.t) + return self._absorption + + @property + def axiom_interpretation(self) -> AxiomInterpretationInclusion: + """The axiom_interpretation inference-rule: 𝒜 ⊢ P. + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + + Warning + ------- + Axiom-interpretation is especially dangerous because, contrary to most + inference-rules, + it allows the introduction of arbitrary truthes in the theory. For this reason, + one must be very attentive when applying this inference-rule to assure the resulting + formula-statement complies / interprets properly its related contentual-axiom. + """ + if self._axiom_interpretation is None: + self._axiom_interpretation = AxiomInterpretationInclusion(t=self.t) + return self._axiom_interpretation + + @property + def bel(self) -> BiconditionalElimination1Inclusion: + """The well-known biconditional-elimination #1 inference-rule: P ⟺ Q ⊢ P ⟹ Q. + + Unabridged property: u.i.biconditional_elimination_1 + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.biconditional_elimination_1 + + @property + def ber(self) -> InferenceRuleInclusion: + """The well-known biconditional-elimination #2 inference-rule: P ⟺ Q ⊢ Q ⟹ P. + + Unabridged property: u.i.biconditional_elimination_2 + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.biconditional_elimination_2 + + @property + def bi(self) -> BiconditionalIntroductionInclusion: + """The well-known biconditional-introduction inference-rule: : P ⟹ Q, Q ⟹ P ⊢ P ⟺ Q. + + Unabridged property: u.i.biconditional_introduction + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.biconditional_introduction + + @property + def biconditional_elimination_1(self) -> BiconditionalElimination1Inclusion: + """The well-known biconditional-elimination #1 inference-rule: P ⟺ Q ⊢ P ⟹ Q. + + Abridged property: u.i.bel + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._biconditional_elimination_1 is None: + self._biconditional_elimination_1 = BiconditionalElimination1Inclusion(t=self.t) + return self._biconditional_elimination_1 + + @property + def biconditional_elimination_2(self) -> BiconditionalElimination2Inclusion: + """The well-known biconditional-elimination #2 inference-rule: P ⟺ Q ⊢ Q ⟹ P. + + Abridged property: u.i.ber() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._biconditional_elimination_1 is None: + self._biconditional_elimination_1 = BiconditionalElimination2Inclusion(t=self.t) + return self._biconditional_elimination_1 + + @property + def biconditional_introduction(self) -> BiconditionalIntroductionInclusion: + """The well-known biconditional-introduction inference-rule: : P ⟹ Q, Q ⟹ P ⊢ P ⟺ Q. + + Abridged property: u.i.bi + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._biconditional_introduction is None: + self._biconditional_introduction = BiconditionalIntroductionInclusion(t=self.t) + return self._biconditional_introduction + + @property + def conjunction_elimination_1(self) -> ConjunctionElimination1Inclusion: + """The well-known conjunction-elimination #1 inference-rule: P ∧ Q ⊢ P. + + Abridged property: t.i.cel() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._conjunction_elimination_1 is None: + self._conjunction_elimination_1 = ConjunctionElimination1Inclusion(t=self.t) + return self._conjunction_elimination_1 + + @property + def conjunction_elimination_2(self) -> ConjunctionElimination2Inclusion: + """The well-known conjunction-elimination #2 inference-rule: P ∧ Q ⊢ Q. + + Abridged property: t.i.cer + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._conjunction_elimination_2 is None: + self._conjunction_elimination_2 = ConjunctionElimination2Inclusion(t=self.t) + return self._conjunction_elimination_2 + + @property + def cel(self) -> ConjunctionElimination1Declaration: + """The well-known conjunction-elimination #1 inference-rule: (P ∧ Q) ⊢ P. + + Unabridged property: universe_of_discourse.inference_rules.conjunction_elimination_1() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.conjunction_elimination_1 + + @property + def cer(self) -> ConjunctionElimination2Inclusion: + """The well-known conjunction-elimination #2 inference-rule: P ∧ Q ⊢ Q. + + Unabridged property: universe_of_discourse.inference_rules.conjunction_elimination_2() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.conjunction_elimination_2 + + @property + def ci(self) -> ConjunctionIntroductionInclusion: + """The well-known conjunction-introduction inference-rule: P, Q ⊢ P ∧ Q. + + Unabridged property: universe_of_discourse.inference_rules.conjunction_introduction() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.conjunction_introduction + + @property + def conjunction_introduction(self) -> ConjunctionIntroductionInclusion: + """The well-known conjunction-introduction inference-rule: P, Q ⊢ P ∧ Q. + + Abridged property: t.i.ci() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._conjunction_introduction is None: + self._conjunction_introduction = ConjunctionIntroductionInclusion(t=self.t) + return self._conjunction_introduction + + @property + def definition_interpretation(self) -> DefinitionInterpretationInclusion: + """The definition_interpretation inference-rule: 𝒟 ⊢ (P = Q). + + If the inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + + Warning + ------- + Axiom-interpretation is especially dangerous because, contrary to most inference-rules, + it allows the introduction of arbitrary truthes in the theory. For this reason, + one must be very attentive when applying this inference-rule to assure the resulting + formula-statement complies / interprets properly its related contentual-definition. + """ + if self._definition_interpretation is None: + self._definition_interpretation = DefinitionInterpretationInclusion(t=self.t) + return self._definition_interpretation + + @property + def di1(self) -> DisjunctionIntroduction1Inclusion: + return self.disjunction_introduction_1 + + @property + def di2(self) -> DisjunctionIntroduction2Inclusion: + return self.disjunction_introduction_2 + + @property + def disjunction_introduction_1(self) -> DisjunctionIntroduction1Inclusion: + if self._disjunction_introduction_1 is None: + self._disjunction_introduction_1 = DisjunctionIntroduction1Inclusion(t=self.t) + return self._disjunction_introduction_1 + + @property + def disjunction_introduction_2(self) -> DisjunctionIntroduction2Inclusion: + if self._disjunction_introduction_2 is None: + self._disjunction_introduction_2 = DisjunctionIntroduction2Inclusion(t=self.t) + return self._disjunction_introduction_2 + + @property + def dne(self) -> DoubleNegationEliminationInclusion: + return self.double_negation_elimination + + @property + def dni(self) -> DoubleNegationIntroductionInclusion: + return self.double_negation_introduction + + @property + def double_negation_elimination(self) -> DoubleNegationEliminationInclusion: + """The well-known double-negation-elimination inference-rule: ¬¬P ⊢ P. + + Abridged property: t.i.dne() + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._double_negation_elimination is None: + self._double_negation_elimination = DoubleNegationEliminationInclusion(t=self.t) + return self._double_negation_elimination + + @property + def double_negation_introduction(self) -> DoubleNegationIntroductionInclusion: + """The well-known double-negation-introduction inference-rule: P ⊢ ¬¬P. + + Abridged property: t.i.dni + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._double_negation_introduction is None: + self._double_negation_introduction = DoubleNegationIntroductionInclusion(t=self.t) + return self._double_negation_introduction + + @property + def ec(self) -> EqualityCommutativityInclusion: + return self.equality_commutativity + + @property + def equality_commutativity(self) -> EqualityCommutativityInclusion: + if self._equality_commutativity is None: + self._equality_commutativity = EqualityCommutativityInclusion(t=self.t) + return self._equality_commutativity + + @property + def equal_terms_substitution(self) -> EqualTermsSubstitutionInclusion: + if self._equal_terms_substitution is None: + self._equal_terms_substitution = EqualTermsSubstitutionInclusion(t=self.t) + return self._equal_terms_substitution + + @property + def ets(self) -> EqualTermsSubstitutionInclusion: + return self.equal_terms_substitution + + @property + def inconsistency_introduction_1(self) -> InconsistencyIntroduction1Inclusion: + if self._inconsistency_introduction_1 is None: + self._inconsistency_introduction_1 = InconsistencyIntroduction1Inclusion(t=self.t) + return self._inconsistency_introduction_1 + + @property + def inconsistency_introduction_2(self) -> InconsistencyIntroduction2Inclusion: + if self._inconsistency_introduction_2 is None: + self._inconsistency_introduction_2 = InconsistencyIntroduction2Inclusion(t=self.t) + return self._inconsistency_introduction_2 + + @property + def inconsistency_introduction_3(self) -> InconsistencyIntroduction3Inclusion: + if self._inconsistency_introduction_3 is None: + self._inconsistency_introduction_3 = InconsistencyIntroduction3Inclusion(t=self.t) + return self._inconsistency_introduction_3 + + @property + def ii1(self) -> InconsistencyIntroduction1Inclusion: + return self.inconsistency_introduction_1 + + @property + def ii2(self) -> InconsistencyIntroduction2Inclusion: + return self.inconsistency_introduction_2 + + @property + def ii3(self) -> InconsistencyIntroduction3Inclusion: + return self.inconsistency_introduction_3 + + @property + def modus_ponens(self) -> ModusPonensInclusion: + """The well-known modus-ponens inference-rule: (P ⟹ Q), P ⊢ Q. + + Abridged property: u.i.mp + + The implication (P ⟹ Q) may contain free-variables. If such is the + case, the resulting Q' is computed by extracting variable-values + from P' and applying variable-substitution. + + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._modus_ponens is None: + self._modus_ponens = ModusPonensInclusion(t=self.t) + return self._modus_ponens + + @property + def mp(self) -> ModusPonensInclusion: + """The well-known modus-ponens inference-rule: (P ⟹ Q), P ⊢ Q. + + Unabridged property: u.i.modus_ponens + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.modus_ponens + + @property + def pbc(self) -> ProofByContradiction1Inclusion: + """ + + Unabridged property: u.i.proof_by_contradiction + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.proof_by_contradiction_1 + + @property + def pbr(self) -> ProofByRefutation1Inclusion: + """ + + Unabridged property: u.i.proof_by_refutation + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + return self.proof_by_refutation_1 + + @property + def proof_by_contradiction_1(self) -> ProofByContradiction1Inclusion: + """ + + Abridged property: u.i.pbc + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._proof_by_contradiction_1 is None: + self._proof_by_contradiction_1 = ProofByContradiction1Inclusion(t=self.t) + return self._proof_by_contradiction_1 + + @property + def proof_by_contradiction_2(self) -> ProofByContradiction2Inclusion: + if self._proof_by_contradiction_2 is None: + self._proof_by_contradiction_2 = ProofByContradiction2Inclusion(t=self.t) + return self._proof_by_contradiction_2 + + @property + def proof_by_refutation_1(self) -> ProofByRefutation1Inclusion: + """ + + Abridged property: u.i.pbr + + If the well-known inference-rule does not exist in the universe-of-discourse, + the inference-rule is automatically declared. + """ + if self._proof_by_refutation_1 is None: + self._proof_by_refutation_1 = ProofByRefutation1Inclusion(t=self.t) + return self._proof_by_refutation_1 + + @property + def proof_by_refutation_2(self) -> ProofByRefutation2Inclusion: + if self._proof_by_refutation_2 is None: + self._proof_by_refutation_2 = ProofByRefutation2Inclusion(t=self.t) + return self._proof_by_refutation_2 + + @property + def variable_substitution(self) -> VariableSubstitutionInclusion: + """ + """ + if self._variable_substitution is None: + self._variable_substitution = VariableSubstitutionInclusion(t=self.t) + return self._variable_substitution + + @property + def vs(self) -> VariableSubstitutionInclusion: + + return self.variable_substitution + + +class UniverseOfDiscourse(SymbolicObject): + """The :ref:`universe_of_discourse_python_class` models a :ref:`universe-of-discourse`. + """ + + def __init__(self, nameset: (None, str, NameSet) = None, symbol: (None, str, StyledText) = None, + dashed_name: (None, str, StyledText) = None, name: (None, str, ComposableText) = None, + echo: (None, bool) = None): + echo = prioritize_value(echo, configuration.echo_universe_of_discourse_declaration, + configuration.echo_default, False) + self.axioms = dict() + self.definitions = dict() + self.formulae = dict() + self._inference_rules = InferenceRuleDeclarationDict(u=self) + self._relations = RelationDict(u=self) + self.theories = dict() + self._simple_objcts = SimpleObjctDict(u=self) + self.symbolic_objcts = dict() + self.theories = dict() + # self.variables = dict() + # Unique name indexes + # self.symbol_indexes = dict() + # self.titles = dict() + + if nameset is None: + symbol = prioritize_value(symbol, + StyledText(plaintext='U', text_style=text_styles.script_normal)) + dashed_name = prioritize_value(symbol, + StyledText(plaintext='universe-of-discourse-', text_style=text_styles.serif_italic)) + index = index_universe_of_discourse_symbol(base=symbol) + nameset = NameSet(symbol=symbol, dashed_name=dashed_name, index=index, name=name) + elif isinstance(nameset, str): + # If symbol was passed as a string, + # assume the base was passed without index. + # TODO: Analyse the string if it ends with index in subscript characters. + index = index_universe_of_discourse_symbol(base=nameset) + nameset = NameSet(s=nameset, index=index, name=name) + super().__init__(is_universe_of_discourse=True, is_theory_foundation_system=False, + nameset=nameset, universe_of_discourse=None, echo=False) + super()._declare_class_membership(classes.universe_of_discourse) + if echo: + self.echo() + + def compose_class(self) -> collections.abc.Generator[Composable, Composable, bool]: + yield SerifItalic(plaintext='universe-of-discourse') + return True + + def compose_creation(self) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from self.nameset.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be a ') + yield from self.compose_class() + # TODO: UniverseOfDiscourse.compose_creation: adapt the method for universe declaration to add "in Ux", referencing the parent / meta universe. + yield text_dict.period + return True + + def cross_reference_axiom(self, a: AxiomDeclaration) -> bool: + """Cross-references an axiom in this universe-of-discourse. + + :parameter a: an axiom-declaration. + """ + verify(a.nameset not in self.axioms.keys() or a is self.axioms[a.nameset], + 'The symbol of parameter ⌜a⌝ is already referenced as a distinct axiom in this ' + 'universe-of-discourse.', a=a, universe_of_discourse=self) + if a not in self.axioms: + self.axioms[a.nameset] = a + return True + else: + return False + + def cross_reference_definition(self, d: DefinitionDeclaration) -> bool: + """Cross-references a definition in this universe-of-discourse. + + :parameter d: a definition. + """ + verify(d.nameset not in self.definitions.keys() or d is self.definitions[d.nameset], + 'The symbol of parameter ⌜d⌝ is already referenced as a distinct definition in this ' + 'universe-of-discourse.', a=d, universe_of_discourse=self) + if d not in self.definitions: + self.definitions[d.nameset] = d + return True + else: + return False + + def cross_reference_formula(self, phi: Formula): + """Cross-references a formula in this universe-of-discourse. + + :param phi: a formula. + """ + verify(is_in_class(phi, classes.formula), + 'Cross-referencing a formula in a universe-of-discourse requires ' + 'an object of type Formula.', phi=phi, slf=self) + verify(phi.nameset not in self.formulae.keys() or phi is self.formulae[phi.nameset], + 'Cross-referencing a formula in a universe-of-discourse requires ' + 'that it is referenced with a unique symbol.', phi_symbol=phi.nameset, phi=phi, + slf=self) + if phi not in self.formulae: + self.formulae[phi.nameset] = phi + + def cross_reference_inference_rule(self, ir: InferenceRuleDeclaration) -> bool: + """Cross-references an inference-rule in this universe-of-discourse. + + :param ir: an inference-rule. + """ + verify(is_in_class(ir, classes.inference_rule), 'Parameter ⌜ir⌝ is not an inference-rule.', + ir=ir, universe_of_discourse=self) + verify( + ir.nameset not in self.inference_rules.keys() or ir is self.inference_rules[ir.nameset], + 'The symbol of parameter ⌜ir⌝ is already referenced as a distinct inference-rule in ' + 'this universe-of-discourse.', ir=ir, universe_of_discourse=self) + if ir not in self.inference_rules: + self.inference_rules[ir.nameset] = ir + return True + else: + return False + + def cross_reference_relation(self, r: Relation): + """Cross-references a relation in this universe-of-discourse. + + :param r: a relation. + """ + verify(isinstance(r, Relation), + 'Cross-referencing a relation in a universe-of-discourse requires ' + 'an object of type Relation.') + verify(r.nameset not in self.relations.keys() or r is self.relations[r.nameset], + 'Cross-referencing a relation in a universe-of-discourse requires ' + 'that it is referenced with a unique symbol.', r_symbol=r.nameset, r=r, slf=self) + if r not in self.relations: + self.relations[r.nameset] = r + + def cross_reference_simple_objct(self, o: SimpleObjct): + """Cross-references a simple-objct in this universe-of-discourse. + + :param o: a simple-objct. + """ + verify(isinstance(o, SimpleObjct), + 'Cross-referencing a simple-objct in a universe-of-discourse requires ' + 'an object of type SimpleObjct.') + verify(o.nameset not in self.simple_objcts.keys() or o is self.simple_objcts[o.nameset], + 'Cross-referencing a simple-objct in a universe-of-discourse requires ' + 'that it is referenced with a unique symbol.', o_symbol=o.nameset, o=o, slf=self) + if o not in self.simple_objcts: + self.simple_objcts[o.nameset] = o + + def cross_reference_symbolic_objct(self, o: TheoreticalObject): + """Cross-references a symbolic-objct in this universe-of-discourse. + + :param o: a symbolic-objct. + """ + verify(is_in_class(o=o, c=classes.symbolic_objct), + 'Cross-referencing a symbolic-objct in a universe-of-discourse requires ' + 'an object of type SymbolicObjct.', o=o, slf=self) + duplicate = self.symbolic_objcts.get(o.nameset) + verify(severity=verification_severities.warning, assertion=duplicate is None, + msg='A symbolic-object already exists in the current universe-of-discourse with a ' + 'duplicate (symbol, index) pair.', o=o, duplicate=duplicate, slf=self) + self.symbolic_objcts[o.nameset] = o + + def cross_reference_theory(self, t: TheoryElaborationSequence): + """Cross-references a theory in this universe-of-discourse. + + :param t: a formula. + """ + verify(is_in_class(t, classes.theory_elaboration), + 'Cross-referencing a theory in a universe-of-discourse requires ' + 'an object of type Theory.', t=t, slf=self) + verify(t.nameset not in self.theories.keys() or t is self.theories[t.nameset], + 'Cross-referencing a theory in a universe-of-discourse requires ' + 'that it is referenced with a unique symbol.', t_symbol=t.nameset, t=t, slf=self) + if t not in self.theories: + self.theories[t.nameset] = t + + def declare_formula(self, relation: Relation, *parameters, nameset: (None, str, NameSet) = None, + lock_variable_scope: (None, bool) = None, echo: (None, bool) = None): + """Declare a new formula in this universe-of-discourse. + + This method is a shortcut for Formula(universe_of_discourse=self, . . d.). + + A formula is *declared* in a theory, and not *stated*, because it is not a statement, + i.e. it is not necessarily true in this theory. + """ + phi = Formula(relation=relation, parameters=parameters, universe_of_discourse=self, + nameset=nameset, lock_variable_scope=lock_variable_scope, echo=echo) + return phi + + def declare_free_variable(self, symbol: (None, str, StyledText) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, echo: (None, bool) = None): + """Declare a free-variable in this universe-of-discourse. + + A shortcut function for FreeVariable(universe_of_discourse=u, ...) + + :param symbol: + :return: + """ + x = FreeVariable(universe_of_discourse=self, nameset=symbol, + status=FreeVariable.scope_initialization_status, echo=echo) + return x + + def declare_symbolic_objct(self, symbol: (None, str, StyledText) = None, + index: (None, int, str) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None) -> SymbolicObject: + return SymbolicObject(universe_of_discourse=self, symbol=symbol, index=index, + auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, ref=ref, + subtitle=subtitle, echo=echo) + + def declare_theory(self, symbol: (None, str, StyledText) = None, + nameset: (None, str, NameSet) = None, ref: (None, str) = None, + subtitle: (None, str) = None, extended_theory: (None, TheoryElaborationSequence) = None, + extended_theory_limit: (None, Statement) = None, stabilized: bool = False, + echo: bool = None): + """Declare a new theory in this universe-of-discourse. + + Shortcut for Theory(universe_of_discourse, ...). + + :param nameset: + :param is_theory_foundation_system: + :param extended_theory: + :return: + """ + return TheoryElaborationSequence(u=self, symbol=symbol, nameset=nameset, ref=ref, + subtitle=subtitle, extended_theory=extended_theory, + extended_theory_limit=extended_theory_limit, stabilized=stabilized, echo=echo) + + def declare_axiom(self, natural_language: str, symbol: (None, str, StyledText) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None) -> AxiomDeclaration: + """:ref:`Declare` a new axiom in this universe-of-discourse. + """ + return AxiomDeclaration(u=self, natural_language=natural_language, symbol=symbol, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, ref=ref, subtitle=subtitle, + paragraph_header=paragraph_header, nameset=nameset, echo=echo) + + def declare_definition(self, natural_language: str, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + """Elaborate a new axiom 𝑎 in this universe-of-discourse. + """ + return DefinitionDeclaration(u=self, natural_language=natural_language, symbol=symbol, + index=index, auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, ref=ref, + subtitle=subtitle, nameset=nameset, echo=echo) + + def echo(self): + return repm.prnt(self.rep_creation(cap=True)) + + def f(self, relation: (Relation, FreeVariable), *parameters, + nameset: (None, str, NameSet) = None, lock_variable_scope: (None, bool) = None, + echo: (None, bool) = None): + """Declare a new formula in this universe-of-discourse. + + Shortcut for self.elaborate_formula(. . .).""" + return self.declare_formula(relation, *parameters, nameset=nameset, + lock_variable_scope=lock_variable_scope, echo=echo) + + def get_symbol_max_index(self, symbol: ComposableText) -> int: + """Return the highest index for that symbol-base in the universe-of-discourse.""" + # if symbol in self.symbol_indexes.keys(): + # return self.symbol_indexes[symbol] + # else: + # return 0 + same_symbols = tuple((nameset.index_as_int for nameset in self.symbolic_objcts.keys() if + nameset.symbol == symbol and nameset.index_as_int is not None)) + return max(same_symbols, default=0) + + @property + def i(self) -> InferenceRuleDeclarationDict: + """The (possibly empty) collection of :ref:`inference-rules` declared in this :ref:`universe-of-discourse`. + + Unabridged name: inference_rules + """ + return self.inference_rules + + def index_symbol(self, symbol: StyledText) -> int: + """Given a symbol-base S (i.e. an unindexed symbol), returns a unique integer n + such that (S, n) is a unique identifier in this instance of UniverseOfDiscourse. + + :param symbol: The symbol-base. + :return: + """ + return self.get_symbol_max_index(symbol) + 1 + + @property + def inference_rules(self) -> InferenceRuleDeclarationDict: + """The (possibly empty) collection of :ref:`inference-rules` declared in this in this :ref:`universe-of-discourse`. + + Abridged name: i + """ + return self._inference_rules + + @property + def o(self) -> SimpleObjctDict: + """The (possibly empty) collection of simple-objects declared in this in this universe-of-discourse. + + Unabridged name: simple_objcts + + Well-known simple-objcts are exposed as python properties. In general, a well-known + simple-objct is declared in the universe-of-discourse the first time its property is + accessed. + """ + return self.simple_objcts + + @property + def r(self) -> RelationDict: + """A python dictionary of relations contained in this universe-of-discourse, + where well-known relations are directly available as properties.""" + return self.relations + + @property + def relations(self) -> RelationDict: + """A python dictionary of relations contained in this universe-of-discourse, + where well-known relations are directly available as properties.""" + return self._relations + + def rep_creation(self, encoding: (None, Encoding) = None, cap: (None, bool) = None) -> str: + return rep_composition(composition=self.compose_creation(), encoding=encoding, cap=cap) + + @property + def simple_objcts(self) -> SimpleObjctDict: + """The collection of simple-objcts in this universe-of-discourse. + + Abridged version: u.o + + Well-known simple-objcts are exposed as python properties. In general, a well-known + simple-objct is declared in the universe-of-discourse the first time its property is + accessed. + + :return: + """ + return self._simple_objcts + + def so(self, symbol=None): + return self.declare_symbolic_objct(symbol=symbol) + + def t(self, symbol: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + ref: (None, str) = None, subtitle: (None, str) = None, + extended_theory: (None, TheoryElaborationSequence) = None, + extended_theory_limit: (None, Statement) = None, stabilized: bool = False, + echo: bool = None): + """Declare a new theory in this universe-of-discourse. + + Shortcut for self.declare_theory(...). + + :param nameset: + :param is_theory_foundation_system: + :param extended_theory: + :return: + """ + return self.declare_theory(symbol=symbol, nameset=nameset, ref=ref, subtitle=subtitle, + extended_theory=extended_theory, extended_theory_limit=extended_theory_limit, + stabilized=stabilized, echo=echo) + + def take_note(self, t: TheoryElaborationSequence, content: str, + symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None): + """Take a note, make a comment, or remark.""" + verify(t.universe_of_discourse is self, + 'This universe-of-discourse 𝑢₁ (self) is distinct from the universe-of-discourse 𝑢₂ ' + 'of the theory ' + 'parameter 𝑡.') + + return NoteInclusion(t=t, content=content, symbol=symbol, index=index, + auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, + paragraph_header=paragraph_header, ref=ref, subtitle=subtitle, nameset=nameset, + echo=echo) + + # @FreeVariableContext() + @contextlib.contextmanager + def v(self, symbol: (None, str, StyledText) = None, index: (None, int) = None, + auto_index: (None, bool) = None, dashed_name: (None, str, StyledText) = None, + acronym: (None, str, StyledText) = None, abridged_name: (None, str, StyledText) = None, + name: (None, str, StyledText) = None, explicit_name: (None, str, StyledText) = None, + echo: (None, bool) = None): + """Declare a free-variable in this universe-of-discourse. + + This method is expected to be as in a with statement, + it yields an instance of FreeVariable, + and automatically lock the variable scope when the with left. + + Example: with u.v('x') as x, u.v('y') as y: + some code... + + To manage variable scope extensions and locking expressly, + use declare_free_variable() instead. + """ + # return self.declare_free_variable(symbol=symbol) + status = FreeVariable.scope_initialization_status + x = FreeVariable(u=self, status=status, symbol=symbol, index=index, auto_index=auto_index, + dashed_name=dashed_name, acronym=acronym, abridged_name=abridged_name, name=name, + explicit_name=explicit_name, echo=echo) + yield x + x.lock_scope() + + +def create_universe_of_discourse(name: (None, str, ComposableText) = None, + echo: (None, bool) = None) -> UniverseOfDiscourse: + """Create a new universe of discourse. + """ + return UniverseOfDiscourse(name=name, echo=echo) + + +class InferredStatement(FormulaStatement): + """A statement inferred from an inference-rule in the current theory-elaboration. + """ + + def __init__(self, *parameters, i: InferenceRuleDeclaration, + # TODO: InferredStatement.__init__(): Possible design-flaw: shouldn't we pass the InferenceRuleInclusion instead? + t: TheoryElaborationSequence, symbol: (None, str, StyledText) = None, + index: (None, int) = None, auto_index: (None, bool) = None, + dashed_name: (None, str, StyledText) = None, acronym: (None, str, StyledText) = None, + abridged_name: (None, str, StyledText) = None, name: (None, str, StyledText) = None, + explicit_name: (None, str, StyledText) = None, ref: (None, str, StyledText) = None, + subtitle: (None, str, StyledText) = None, + paragraph_header: (None, ParagraphHeader) = None, nameset: (None, str, NameSet) = None, + echo: (None, bool) = None, echo_proof: (None, bool) = None): + """Include (aka allow) an inference_rule in a theory-elaboration. + """ + echo = prioritize_value(echo, configuration.echo_inferred_statement, + configuration.echo_statement, configuration.echo_default, False) + self._inference_rule = i + self._parameters = tuple(parameters) + verify(self._inference_rule.verify_args(*parameters, t=t), + 'Parameters ⌜*args⌝ are not compatible with inference-rule ⌜self⌝', args=parameters, + slf=self, t=t) + valid_proposition = self._inference_rule.infer_formula(*parameters, t=t) + super().__init__(theory=t, valid_proposition=valid_proposition, symbol=symbol, index=index, + auto_index=auto_index, dashed_name=dashed_name, acronym=acronym, + abridged_name=abridged_name, name=name, explicit_name=explicit_name, ref=ref, + subtitle=subtitle, nameset=nameset, paragraphe_header=paragraph_header, echo=False) + super()._declare_class_membership(declarative_class_list.inferred_proposition) + if self.valid_proposition.relation is self.t.u.r.inconsistency and is_in_class( + self.valid_proposition.parameters[0], classes.theory_elaboration): + # This inferred-statement proves the inconsistency of its argument, + # its argument is a theory-elaboration-sequence (i.e. it is not a free-variable), + # it follows that we must change the consistency attribute of that theory. + inconsistent_theory: TheoryElaborationSequence + inconsistent_theory = self.valid_proposition.parameters[0] + inconsistent_theory.report_inconsistency_proof(proof=self) + if echo: + self.echo(proof=echo_proof) + if self.inference_rule is self.t.u.i.axiom_interpretation or self.inference_rule is self.t.u.i.definition_interpretation: + t.assure_interpretation_disclaimer(echo=echo) + + def compose_class(self) -> collections.abc.Generator[Composable, None, None]: + # TODO: Instead of hard-coding the class name, use a meta-theory. + yield SerifItalic(plaintext='inferred-statement') + + def compose_report(self, proof: (None, bool) = None, **kwargs): + output = yield from configuration.locale.compose_inferred_statement_report(o=self, + proof=proof) + return output + + def echo(self, proof: (None, bool) = None): + proof = prioritize_value(proof, configuration.echo_proof, True) + repm.prnt(self.rep_report(proof=proof)) + + @property + def parameters(self) -> tuple: + return self._parameters + + @property + def inference_rule(self) -> InferenceRuleDeclaration: + """Return the inference-rule upon which this inference-rule-inclusion is based. + """ + return self._inference_rule + + +def rep_two_columns_proof_item(left: str, right: str) -> str: + """Format a two-columns proof row. + TODO: Implement logic for plaintext, unicode and latex. + """ + left_column_width = prioritize_value(configuration.two_columns_proof_left_column_width, 67) + right_column_width = prioritize_value(configuration.two_columns_proof_right_column_width, 30) + report = textwrap.wrap(text=left, width=left_column_width, break_on_hyphens=False) + report = [line.ljust(left_column_width, ' ') + ' | ' for line in report] + report[len(report) - 1] = report[len(report) - 1] + right + report = '\n'.join(report) + return report + '\n' + + +def rep_two_columns_proof_end(left: str) -> str: + """Format the end of a two-columns proof + TODO: Implement logic for plaintext, unicode and latex. + """ + left_column_width = prioritize_value(configuration.two_columns_proof_left_column_width, 67) + right_column_width = prioritize_value(configuration.two_columns_proof_right_column_width, 30) + report = ''.ljust(left_column_width + 1, '─') + '┤ ' + '\n' + report = report + rep_two_columns_proof_item(left=left, right='∎') + return report + + +def apply_negation(phi: Formula) -> Formula: + """Apply negation to a formula phi.""" + return phi.u.f(phi.u.r.lnot, phi.u.f(phi.u.r.lnot, phi)) + + +def apply_double_negation(phi: Formula) -> Formula: + """Apply double-negation to a formula phi.""" + return apply_negation(apply_negation(phi)) + + +class InconsistencyIntroductionStatement(FormulaStatement): + """ + + Requirements: + ------------- + + """ + + def __init__(self, p, not_p, nameset=None, paragraphe_header=None, theory=None, title=None): + if title is None: + title = 'THEORY INCONSISTENCY' + paragraphe_header = paragraph_headers.proposition if paragraphe_header is None else paragraphe_header + self.p = p + self.not_p = not_p + valid_proposition = InconsistencyIntroductionInferenceRuleOBSOLETE.execute_algorithm( + theory=theory, p=p, not_p=not_p) + super().__init__(theory=theory, valid_proposition=valid_proposition, + paragraphe_header=paragraphe_header, title=title, nameset=nameset) + # The theory is proved inconsistent! + theory.prove_inconsistent(self) + if configuration.warn_on_inconsistency: + warnings.warn(f'{self.rep_report(proof=True)}', InconsistencyWarning) + + def rep_report(self, proof: (None, bool) = None): + """Return a representation that expresses and justifies the statement. + + The representation is in two parts: + - The formula that is being stated, + - The justification for the formula.""" + output = f'{self.rep_title(cap=True)}: {self.valid_proposition.rep_formula()}' + if proof: + output = output + f'\n\t{repm.serif_bold("Proof of inconsistency")}' + output = output + f'\n\t{self.p.rep_formula(expand=True):<70} │ Follows from ' \ + f'{repm.serif_bold(self.p.rep_ref())}.' + output = output + f'\n\t{self.not_p.rep_formula(expand=True):<70} │ Follows from ' \ + f'{repm.serif_bold(self.not_p.rep_ref())}.' + output = output + f'\n\t{"─" * 71}┤' + output = output + f'\n\t{self.valid_proposition.rep_formula(expand=True):<70} │ ∎' + return output + f'\n' + + +def reset_configuration(configuration: Configuration) -> None: + configuration.auto_index = None + configuration._echo_default = False + configuration.default_axiom_declaration_symbol = ScriptNormal('A') + configuration.default_axiom_inclusion_symbol = SerifItalic('A') + configuration.default_definition_declaration_symbol = ScriptNormal('D') + configuration.default_definition_inclusion_symbol = SerifItalic('D') + configuration.default_formula_symbol = SerifItalic(plaintext='phi', unicode='𝜑') + configuration.default_free_variable_symbol = StyledText(plaintext='x', + text_style=text_styles.serif_bold) + configuration.default_parent_hypothesis_statement_symbol = SerifItalic('H') + configuration.default_child_hypothesis_theory_symbol = ScriptNormal('H') + configuration.default_inference_rule_declaration_symbol = SerifItalic('I') + configuration.default_inference_rule_inclusion_symbol = SerifItalic('I') + configuration.default_note_symbol = SerifItalic('note') + configuration.default_relation_symbol = SerifItalic('r') + configuration.default_statement_symbol = SerifItalic('P') + configuration.default_symbolic_object_symbol = SerifItalic('o') + configuration.default_theory_symbol = ScriptNormal('T') + configuration.echo_axiom_declaration = False + configuration.echo_axiom_inclusion = True + configuration.echo_declaration = None + configuration.echo_definition_declaration = False + configuration.echo_definition_inclusion = True + configuration.echo_definition_direct_inference = None + configuration.echo_encoding = None + configuration.echo_formula_declaration = False # In general, this is too verbose. + configuration.echo_free_variable_declaration = False + configuration.echo_hypothesis = None + configuration.echo_inclusion = None + configuration.echo_inference_rule_declaration = False + configuration.echo_inference_rule_inclusion = True + configuration.echo_inferred_statement = True + configuration.echo_note = True + configuration.echo_proof = True + configuration.echo_relation = None + configuration.echo_simple_objct_declaration = None + configuration.echo_statement = True + configuration.echo_symbolic_objct = None + configuration.echo_theory_elaboration_sequence_declaration = None + configuration.echo_universe_of_discourse_declaration = None + configuration.output_index_if_max_index_equal_1 = False + configuration.raise_exception_on_verification_error = True + configuration.title_text_style = text_styles.sans_serif_bold + configuration.encoding = encodings.unicode + configuration.text_output_indent = 2 + configuration.two_columns_proof_left_column_width = 67 + configuration.two_columns_proof_right_column_width = 30 + configuration.text_output_total_width = 100 + configuration.warn_on_inconsistency = True + + +reset_configuration(configuration=configuration) + + +class TheoryPackage: + def __init__(self): + pass + + def develop(self) -> TheoryElaborationSequence: + """Elaborate a new theory in a new universe with the content of the package. + + """ + u = create_universe_of_discourse() + t = u.declare_theory() + self.develop_theory(t=t) + return t + + @abc.abstractmethod + def develop_theory(self, t: TheoryElaborationSequence) -> TheoryElaborationSequence: + """Given a theory t, pursue the elaboration of that theory with the content of the package. + + This is the key method that must be implemented by the non-abstract package.""" + raise NotImplementedError() + + def develop_universe(self, u: UniverseOfDiscourse) -> TheoryElaborationSequence: + """Given a universe u, elaborate a new theory with the content of the package in that + universe. + + """ + t = u.declare_theory() + t = self.develop_theory(t=t) + return t + + +class Article: + """TODO: Article: for future development.""" + + def __init__(self): + self._elements = [] + + def write_element(self, element: SymbolicObject): + self._elements.append(element) + + +pass diff --git a/build/lib/graph.py b/build/lib/graph.py new file mode 100644 index 00000000..b72dab1c --- /dev/null +++ b/build/lib/graph.py @@ -0,0 +1,82 @@ +import punctilious as pu +import networkx as nx +import sample.code.pet_theory_1 as pet + +# import pygraphviz + +t = pet.t1 +u = pet.u + + +def graph_symbolic_object(g: nx.MultiDiGraph, o: pu.SymbolicObject): + if pu.is_in_class(o, pu.classes.simple_objct): + graph_simpl_objct(g, o) + elif pu.is_in_class(o, pu.classes.theory_elaboration): + graph_theory(g, o) + elif pu.is_in_class(o, pu.classes.relation): + graph_relation(g, o) + elif pu.is_in_class(o, pu.classes.free_variable): + graph_free_variable(g, o) + elif pu.is_in_class(o, pu.classes.formula): + graph_formula(g, o) + elif pu.is_in_class(o, pu.classes.formula_statement): + graph_formula_statement(g, o) + + +def graph_theory(g: nx.MultiDiGraph, t: pu.TheoryElaborationSequence): + g.add_node(t.rep_name()) + for s in t.statements: + graph_symbolic_object(g, s) + + +def graph_formula_statement(g: nx.MultiDiGraph, s: pu.TheoryElaborationSequence): + g.add_node(t.rep_name()) + graph_symbolic_object(g, s.valid_proposition) + g.add_edge(s.valid_proposition.rep_name(), t.rep_name()) + + +def graph_free_variable(g: nx.MultiDiGraph, x: pu.FreeVariable): + g.add_node(x.rep_name()) + + +def graph_simple_objct(g: nx.MultiDiGraph, o: pu.Formula): + g.add_node(o.rep_name()) + + +def graph_relation(g: nx.MultiDiGraph, r: pu.Relation): + g.add_node(r.rep_name()) + + +def graph_formula(g: nx.MultiDiGraph, f: pu.Formula): + g.add_node(f.rep_name()) + if f.relation.arity == 1: + graph_symbolic_object(g, f.relation) + g.add_edge(f.relation.rep_name(), f.rep_name()) + graph_symbolic_object(g, f.parameters[0]) + g.add_edge(f.parameters[0].rep_name(), f.rep_name()) + if f.relation.arity == 2: + graph_symbolic_object(g, f.relation) + g.add_edge(f.relation.rep_name(), f.rep_name()) + graph_symbolic_object(g, f.parameters[0]) + g.add_edge(f.parameters[0].rep_name(), f.rep_name()) + graph_symbolic_object(g, f.parameters[1]) + g.add_edge(f.parameters[1].rep_name(), f.rep_name()) + + +g = nx.Graph() +graph_theory(g, t) +# subax1 = plt.subplot(121) +# nx.draw(g, with_labels=True, font_weight='bold') +# plt.show() +pg = nx.nx_pydot.to_pydot(g) +output_graphviz_svg = pg.create_svg() +# a = nx.nx_agraph.to_agraph(g) +# a.draw("file.png") +""" + def add_to_graph(self, g): + " ""Add this theoretical object as a node in the target graph g. + Recursively add directly linked objects unless they are already present in g. + NetworkX automatically and quietly ignores nodes and edges that are already present." "" + super().add_to_graph(g=g, ) + g.add_node(self.repr_as_symbol()) +""" diff --git a/build/lib/locale_en_us.py b/build/lib/locale_en_us.py new file mode 100644 index 00000000..50cb8205 --- /dev/null +++ b/build/lib/locale_en_us.py @@ -0,0 +1,725 @@ +import core +from core import * + + +class LocaleEnUs(Locale): + """TODO: Implement localization. This is just a small example to showcase how this could be implemented.""" + + def __init__(self): + super().__init__(name='EN-US') + + def compose_absorption_paragraph_proof(self, o: InferredStatement) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p: FormulaStatement = o.parameters[0] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + yield from o.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from the application of the ') + yield from o.inference_rule.compose_symbol() + yield SansSerifNormal(' inference-rule: ') + yield o.inference_rule.definition + yield SansSerifNormal('.') + return True + + def compose_axiom_declaration(self, o: AxiomDeclaration) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from o.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be the ') + yield SerifItalic('axiom') + yield SansSerifNormal(' ') + yield text_dict.open_quasi_quote + yield o.natural_language + yield text_dict.close_quasi_quote + yield SansSerifNormal(' in ') + yield from o.universe_of_discourse.compose_symbol() + yield from o.nameset.compose_name(pre=SansSerifNormal(', known as ')) + yield from o.nameset.compose_acronym(pre=SansSerifNormal(', or simply ')) + yield SansSerifNormal('.') + return True + + def compose_axiom_inclusion_report(self, o: AxiomInclusion, proof: (None, bool) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield from o.compose_title(cap=True) + yield SansSerifNormal(': Let ') + yield SerifItalic('axiom') + yield SansSerifNormal(' ') + yield from o.axiom.compose_symbol() + yield SansSerifNormal(' ') + yield text_dict.open_quasi_quote + yield o.axiom.natural_language + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be included (postulated) in ') + yield from o.theory.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_axiom_interpretation_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + a: AxiomInclusion + p: Formula + a = o.parameters[0] + p = o.parameters[1] + yield from a.axiom.compose_natural_language() + yield SansSerifNormal(' is postulated by ') + yield from a.compose_ref_link() + yield SansSerifNormal('. ') + yield from p.compose_formula() + yield SansSerifNormal(' is a valid formula statement interpreted from that axiom.') + return True + + def compose_biconditional_elimination_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + p0 = o.inference_rule.definition.parameters[0] + p_iff_q: FormulaStatement = o.parameters[0] + yield from p_iff_q.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield p0.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p_iff_q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_biconditional_elimination_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + p0 = o.inference_rule.definition.parameters[0] + q_iff_p: FormulaStatement = o.parameters[0] + yield from q_iff_p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from p0.compose_formula() + yield SansSerifNormal(', follows from ') + yield from q_iff_p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_biconditional_introduction_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_p_implies_q: Formula = o.inference_rule.definition.parameters[0].parameters[0] + p_implies_q: FormulaStatement = o.parameters[0] + yield from p_implies_q.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_p_implies_q.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p_implies_q.compose_ref_link() + yield SansSerifNormal('. ') + parameter_q_implies_p: Formula = o.inference_rule.definition.parameters[0].parameters[1] + q_implies_p: FormulaStatement = o.parameters[1] + yield from q_implies_p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_q_implies_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from q_implies_p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_conjunction_elimination_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + p0 = o.inference_rule.definition.parameters[0] + p_and_q: FormulaStatement = o.parameters[0] + yield from p_and_q.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield p0.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p_and_q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_conjunction_elimination_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + p0 = o.inference_rule.definition.parameters[0] + p_and_q: FormulaStatement = o.parameters[0] + yield from p_and_q.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield p0.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p_and_q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_conjunction_introduction_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_p: Formula = o.inference_rule.definition.parameters[0].parameters[0] + p: FormulaStatement = o.parameters[0] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + parameter_q: Formula = o.inference_rule.definition.parameters[0].parameters[1] + q: FormulaStatement = o.parameters[1] + yield from q.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_q.compose_formula() + yield SansSerifNormal(', follows from ') + yield from q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_definition_declaration(self, o: DefinitionDeclaration) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from o.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be the ') + yield SerifItalic('definition') + yield SansSerifNormal(' ') + yield text_dict.open_quasi_quote + yield o.natural_language + yield text_dict.close_quasi_quote + yield SansSerifNormal(' in ') + yield from o.universe_of_discourse.compose_symbol() + yield from o.nameset.compose_name(pre=SansSerifNormal(', known as ')) + yield from o.nameset.compose_acronym(pre=SansSerifNormal(', or simply ')) + yield SansSerifNormal('.') + return True + + def compose_definition_inclusion_report(self, o: DefinitionInclusion, + proof: (None, bool) = None) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield from o.compose_title(cap=True) + yield SansSerifNormal(': Let ') + yield SerifItalic('definition') + yield SansSerifNormal(' ') + yield from o.definition.compose_symbol() + yield SansSerifNormal(' ') + yield text_dict.open_quasi_quote + yield o.definition.natural_language + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be included (postulated) in ') + yield from o.theory.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_definition_interpretation_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + a: DefinitionInclusion + p: Formula + a = o.parameters[0] + p = o.parameters[1] + yield from a.definition.compose_natural_language() + yield SansSerifNormal(' is postulated by ') + yield from a.compose_ref_link() + yield SansSerifNormal('. ') + yield from p.compose_formula() + yield SansSerifNormal(' is an interpretation of that definition.') + return True + + def compose_disjunction_introduction_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_p: Formula = o.inference_rule.definition.parameters[0] + p: FormulaStatement = o.parameters[0] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + parameter_q: Formula = o.inference_rule.definition.parameters[1].parameters[0] + q: FormulaStatement = o.parameters[1] + yield from q.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_q.compose_formula() + yield SansSerifNormal(', is given. ') + return True + + def compose_disjunction_introduction_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_p: Formula = o.inference_rule.definition.parameters[0] + p: FormulaStatement = o.parameters[0] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + parameter_q: Formula = o.inference_rule.definition.parameters[1].parameters[1] + q: FormulaStatement = o.parameters[1] + yield from q.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_q.compose_formula() + yield SansSerifNormal(', is given. ') + return True + + def compose_double_negation_elimination_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_not_not_p: Formula = o.inference_rule.definition.parameters[0] + not_not_p: FormulaStatement = o.parameters[0] + yield from not_not_p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_not_not_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from not_not_p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_double_negation_introduction_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + parameter_p: Formula = o.inference_rule.definition.parameters[0] + p: FormulaStatement = o.parameters[0] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(', of the form ') + yield from parameter_p.compose_formula() + yield SansSerifNormal(', follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_equality_commutativity_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_eq_q: FormulaStatement + p_eq_q = o.parameters[0] + yield from p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_equal_terms_substitution_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p: FormulaStatement = o.parameters[0] + p_eq_q: FormulaStatement = o.parameters[1] + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + yield from p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_inconsistency_introduction_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p0 = StyledText(plaintext='P', unicode='𝑷') + p1 = StyledText(plaintext='not(P)', unicode='¬(𝑷)') + p: FormulaStatement = o.parameters[0] + not_p: FormulaStatement = o.parameters[1] + yield SansSerifNormal('Let ') + yield p0 + yield SerifItalic(' := ') + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(', which follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('. ') + yield SansSerifNormal('Let ') + yield p1 + yield SerifItalic(' := ') + yield from not_p.valid_proposition.compose_formula() + yield SansSerifNormal(', which follows from ') + yield from not_p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_inconsistency_introduction_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p0: StyledText = StyledText(plaintext='(P = Q)', unicode='(𝑷 = 𝑸)') + p1: StyledText = StyledText(plaintext='(P neq Q))', unicode='(𝑷 ≠ 𝑸)') + p_eq_q: FormulaStatement = o.parameters[0] + p_neq_q: FormulaStatement = o.parameters[1] + yield SansSerifNormal('Let ') + yield p0 + yield SerifItalic(' := ') + yield from p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal('. ') + yield SansSerifNormal('Let ') + yield p1 + yield SerifItalic(' := ') + yield from p_neq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p_neq_q.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_inconsistency_introduction_3_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p0: StyledText = StyledText(plaintext='(P neq P)', unicode='(𝑷 ≠ 𝑷)') + p_neq_p: FormulaStatement = o.parameters[0] + yield SansSerifNormal('Let ') + yield p0 + yield SerifItalic(' := ') + yield from p_neq_p.valid_proposition.compose_formula() + yield SansSerifNormal(', which follows from ') + yield from p_neq_p.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_inference_rule_declaration(self, i: InferenceRuleDeclaration) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from i.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be an ') + yield SerifItalic('inference-rule') + yield SansSerifNormal(' defined as ') + if i.definition is None: + yield '(missing definition)' + else: + yield text_dict.open_quasi_quote + yield i.definition + yield text_dict.close_quasi_quote + yield SansSerifNormal(' in ') + yield from i.u.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_inference_rule_inclusion_report(self, i: InferenceRuleInclusion, + proof: (None, bool) = None) -> collections.abc.Generator[Composable, Composable, bool]: + global text_dict + yield from i.inference_rule.compose_title(cap=True) + yield SansSerifNormal(': Let ') + yield SerifItalic('inference-rule') + yield SansSerifNormal(' ') + yield from i.inference_rule.compose_symbol() + yield SansSerifNormal(' defined as ') + if i.inference_rule.definition is None: + yield '(missing definition)' + else: + yield text_dict.open_quasi_quote + yield i.inference_rule.definition + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be included and considered valid in ') + yield from i.theory.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_inferred_statement_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + """Generic paragraph proof composition for inferred-statements. + This method makes a best effort at composing a paragraph proof, + but should rather be overridden by the inference-rule specialized class.""" + for i in range(len(o.parameters)): + parameter = o.parameters[i] + if isinstance(parameter, FormulaStatement): + parameter: FormulaStatement + yield from parameter.valid_proposition.compose_formula() + else: + yield from parameter.compose_formula() + yield SansSerifNormal(' follows from ') + yield from parameter.compose_ref_link() + yield SansSerifNormal('. ') + return True + + def compose_inferred_statement_report(self, o: InferredStatement, proof: (None, bool) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + proof = prioritize_value(proof, True) + yield o.compose_title(cap=True) + yield SansSerifNormal(': ') + yield from o.valid_proposition.compose_formula() + yield SansSerifNormal('.') + if proof: + yield SansSerifNormal(' ') + yield SansSerifBold('Proof') + yield SansSerifNormal(': ') + yield from o.inference_rule.compose_paragraph_proof(o=o) + # Proof conclusion + yield SansSerifNormal('Therefore, by the ') + yield from o.inference_rule.compose_dashed_name() + yield SansSerifNormal(' inference rule: ') + yield o.inference_rule.definition + yield SansSerifNormal(', it follows that ') + yield from o.valid_proposition.compose_formula() + yield SansSerifNormal('. ') + yield self.qed + return True + + def compose_modus_ponens_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_implies_q: FormulaStatement = o.parameters[0] + p: FormulaStatement = o.parameters[1] + yield from p_implies_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p_implies_q.compose_ref_link() + yield SansSerifNormal('.') + yield from p.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from p.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_note_report(self, o: InferredStatement, **kwargs) -> collections.abc.Generator[ + Composable, Composable, bool]: + yield o.compose_title(cap=True) + yield SansSerifNormal(': ') + yield from o.compose_content() + return True + + def compose_parent_hypothesis_statement_report(self, o: Hypothesis, + proof: (None, bool) = None) -> collections.abc.Generator[Composable, Composable, bool]: + proof = prioritize_value(proof, True) + yield o.compose_title(cap=True) + yield SansSerifNormal(': ') + yield from o.hypothesis_formula.compose_formula() + yield SansSerifNormal('.') + if proof: + yield SansSerifNormal(' This hypothesis is elaborated in theory ') + yield from o.hypothesis_child_theory.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_proof_by_contradiction_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_eq_q: Hypothesis = o.parameters[0] + yield SansSerifNormal('Let ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal(' be the hypothesis ') + yield from p_eq_q.hypothesis_formula.compose_formula() + yield SansSerifNormal('. ') + inc_p_eq_q: FormulaStatement = o.parameters[1] + yield from inc_p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from inc_p_eq_q.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_proof_by_contradiction_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_eq_q: Hypothesis = o.parameters[0] + yield SansSerifNormal('Let ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal(' be the hypothesis ') + yield from p_eq_q.hypothesis_formula.compose_formula() + yield SansSerifNormal('. ') + inc_p_eq_q: FormulaStatement = o.parameters[1] + yield from inc_p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from inc_p_eq_q.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_proof_by_refutation_1_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_eq_q: Hypothesis = o.parameters[0] + yield SansSerifNormal('Let ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal(' be the hypothesis ') + yield from p_eq_q.hypothesis_formula.compose_formula() + yield SansSerifNormal('. ') + inc_p_eq_q: FormulaStatement = o.parameters[1] + yield from inc_p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from inc_p_eq_q.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_proof_by_refutation_2_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + p_eq_q: Hypothesis = o.parameters[0] + yield SansSerifNormal('Let ') + yield from p_eq_q.compose_ref_link() + yield SansSerifNormal(' be the hypothesis ') + yield from p_eq_q.hypothesis_formula.compose_formula() + yield SansSerifNormal('. ') + inc_p_eq_q: FormulaStatement = o.parameters[1] + yield from inc_p_eq_q.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from inc_p_eq_q.compose_ref_link() + yield SansSerifNormal('.') + return True + + def compose_simple_objct_declaration(self, o: SimpleObjct) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from o.compose_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be a ') + yield SerifItalic('simple-object') + yield SansSerifNormal(' in ') + yield from o.universe_of_discourse.compose_symbol() + yield SansSerifNormal('.') + return True + + def compose_theory_declaration(self, t: TheoryElaborationSequence) -> collections.abc.Generator[ + Composable, Composable, bool]: + global text_dict + yield SansSerifNormal('Let ') + yield text_dict.open_quasi_quote + yield from t.nameset.compose_qualified_symbol() + yield text_dict.close_quasi_quote + yield SansSerifNormal(' be a ') + yield from t.compose_class() + yield SansSerifNormal(' in ') + yield from t.u.compose_symbol() + yield text_dict.period + return True + + def compose_theory_article(self, t: TheoryElaborationSequence, proof: (None, bool) = None) -> \ + collections.abc.Generator[Composable, Composable, bool]: + + yield self.paragraph_start + yield from t.rep_name() + yield self.paragraph_end + + yield Header(plaintext='Theory properties', level=1) + yield self.paragraph_start + yield SansSerifBold('Consistency: ') + yield str(t.consistency) + yield self.paragraph_end + yield self.paragraph_start + yield SansSerifBold('Stabilized: ') + yield str(t.stabilized) + yield self.paragraph_end + yield self.paragraph_start + yield SansSerifBold('Extended theory: ') + yield 'N/A' if t.extended_theory is None else t.extended_theory.rep_fully_qualified_name() + yield self.paragraph_end + + yield Header(plaintext='Simple-objects declarations', level=1) + yield self.paragraph_start + yield SansSerifNormal('Let ') + first_item = True + for o in t.universe_of_discourse.simple_objcts.values(): + # TODO: Filter on simple-objects that are effectively present in the theory. + if not first_item: + yield ', ' + yield text_dict.open_quasi_quote + yield from o.compose_symbol() + yield text_dict.close_quasi_quote + first_item = False + yield SansSerifNormal(' be ') + yield SerifItalic('simple-objects') + yield SansSerifNormal(' in ') + yield from t.universe_of_discourse.compose_symbol() + yield SansSerifNormal('.') + yield self.paragraph_end + + yield Header(plaintext='Relations', level=1) + # TODO: Show default notations (infix, postfix, prefix) + arities = frozenset(r.arity for r in t.iterate_relations()) + for a in arities: + yield self.paragraph_start + yield SansSerifNormal('Let ') + first_item = True + plural = False + for r in (r for r in t.iterate_relations() if r.arity == a): + r: Relation + if not first_item: + yield SansSerifNormal(', ') + plural = True + yield text_dict.open_quasi_quote + yield from r.compose_symbol() + yield text_dict.close_quasi_quote + first_item = False + yield SansSerifNormal(' be ') + if plural: + yield SerifItalic(rep_arity_as_text(a)) + yield SerifItalic('-relations') + else: + yield SansSerifNormal('a ') + yield SerifItalic(rep_arity_as_text(a)) + yield SerifItalic('-relation') + yield SansSerifNormal(' in ') + yield from t.universe_of_discourse.compose_symbol() + yield SansSerifNormal('.') + yield self.paragraph_end + + yield Header(plaintext='Inference rules', level=1) + yield self.paragraph_start + yield SansSerifNormal( + 'The following inference rules are considered valid under this theory:') + yield self.paragraph_end + for inference_rule in sorted(t.i.values(), + key=lambda i: i.inference_rule.rep_dashed_name(encoding=encodings.plaintext)): + inference_rule: InferenceRuleInclusion + yield self.paragraph_start + yield from inference_rule.inference_rule.compose_report() + yield self.paragraph_end + + yield Header(plaintext='Theory elaboration sequence', level=1) + for s in t.statements: + s: Statement + yield self.paragraph_start + yield from s.compose_report(proof=proof) + yield self.paragraph_end + return True + + def compose_variable_substitution_paragraph_proof(self, o: InferredStatement) -> \ + collections.abc.Generator[Composable, Composable, bool]: + global text_dict + # Retrieve the parameters from the statement + parameter = o.parameters[0] + yield from parameter.valid_proposition.compose_formula() + yield SansSerifNormal(' follows from ') + yield from parameter.compose_ref_link() + yield SansSerifNormal('.') + yield SansSerifNormal(' Let ') + free_variables = parameter.get_variable_ordered_set() + substitution_values = o.parameters[1] + mapping = zip(free_variables, substitution_values) + first_pair = True + for k, v in mapping: + if not first_pair: + yield SansSerifNormal(', ') + yield from k.compose_symbol() + yield ' = ' + yield from v.rep_formula() + first_pair = False + yield SansSerifNormal('.') + return True + + @property + def maps_to(self) -> StyledText: + if self._maps_to is None: + self._maps_to = SansSerifNormal(plaintext='|-->', unicode='↦', latex='\\mapsto') + return self._maps_to + + @property + def paragraph_end(self) -> StyledText: + if self._paragraph_end is None: + self._paragraph_end = SansSerifNormal(plaintext='\n', unicode='\n', latex='') + return self._paragraph_end + + @property + def paragraph_start(self) -> StyledText: + if self._paragraph_start is None: + self._paragraph_start = SansSerifNormal(plaintext='', unicode='', latex='') + return self._paragraph_start + + @property + def qed(self) -> StyledText: + if self._qed is None: + self._qed = SansSerifNormal(plaintext='QED', unicode='∎', latex='\\qed') + return self._qed + + +locale_en_us = LocaleEnUs() diff --git a/build/lib/plaintext.py b/build/lib/plaintext.py new file mode 100644 index 00000000..c8f4c5d0 --- /dev/null +++ b/build/lib/plaintext.py @@ -0,0 +1,35 @@ +import typing +import unidecode + + +def prioritize_value(*args) -> typing.Any: + """Return the first non-None object in ⌜*args⌝.""" + for a in args: + if a is not None: + return a + return None + + +def force_plaintext(s: (None, str), empty_if_none: (None, bool) = None) -> str: + """In the context of the Punctilious package, plaintext is a subset + of ASCII composed of well-known alphanumeric and punctuation characters. + """ + if s is None: + empty_if_none = prioritize_value(empty_if_none, False) + return '' if empty_if_none else None + # Using unidecode() is temporary solution, + # it leads to some undesirable mappings (e.g. ¬ is mapped to !). + # TODO: Consider implementing a custom mapper, + # optimized for mathematical usage. + s = unidecode.unidecode(s) + return s + + +class Plaintext(str): + def __new__(cls, s: (None, str), empty_if_none: (None, bool) = None): + empty_if_none = prioritize_value(empty_if_none, False) + if s is None and not empty_if_none: + return None + s = force_plaintext(s=s, empty_if_none=empty_if_none) + instance = super().__new__(cls, s) + return instance diff --git a/build/lib/punctilious.egg-info/PKG-INFO b/build/lib/punctilious.egg-info/PKG-INFO new file mode 100644 index 00000000..e8ed73d2 --- /dev/null +++ b/build/lib/punctilious.egg-info/PKG-INFO @@ -0,0 +1,97 @@ +Metadata-Version: 2.1 +Name: punctilious +Version: 1.0.0 +Summary: A human-friendly and developer-friendly math proof assistant +Home-page: https://github.com/daviddoret/punctilious +Author: David Doret +Author-email: David Doret +License: MIT License +Project-URL: Homepage, https://github.com/daviddoret/punctilious +Project-URL: Bug Tracker, https://github.com/daviddoret/punctilious/issues +Project-URL: Documentation, https://punctilious.readthedocs.io/en/latest/ +Project-URL: Repository, https://github.com/daviddoret/punctilious +Keywords: math,mathematics,proof,proof assistant,math proof assistant,formal system +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Education +Classifier: Intended Audience :: Science/Research +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: License :: OSI Approved :: MIT License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Topic :: Education +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Scientific/Engineering :: Mathematics +Requires-Python: >=3.11 +Description-Content-Type: text/markdown +License-File: LICENSE + +# punctilious + +
+
+ + Logo + +
+

+ A human-friendly and developer-friendly math proof assistant library. +

+ +## About + +*Punctilious* is a *math proof assistant* open-source project developed in python. In straightforward language, it +intends to +facilitate the study and development of mathematical proofs by human beings. + +There exists multiple math proof assistants, including: + +* [Coq](https://coq.inria.fr/) +* [Isabelle](https://isabelle.in.tum.de/) +* [Lean](https://leanprover.github.io/) + +...and many more. The [proof assistant](https://en.wikipedia.org/wiki/Proof_assistant) page on Wikipedia contains a +general-purpose comparison of these. + +In contrast, *punctilious* is a ridiculous [Lilliputian](https://en.wikipedia.org/wiki/Lilliput_and_Blefuscu) with +neither the length, nor the breadth of these time-proven systems. + +### So why develop yet another math proof assistant? + +Besides being a fun and thrilling learning experience, the focus points of *punctilious* are: + +* Human-friendly and developer-friendly inputs (i.e.: write math as we learn it) +* Ease of use +* Human-friendly and developer-friendly outputs (i.e.: readable) + +*Punctilious* does not pay much attention to: + +* Performance (i.e. for large-scale proof applications) + +## Prerequisites + +Python 3.11 + +## Installation + +We are just in the process of publishing *punctilious* on PyPI. Please wait... + +## Getting started + +Many samples will be provided soon once we will have published our documentation on ReadTheDocs. Please wait... + +## Documentation + +*Punctilious* documentation lives on [ReadTheDocs](https://punctilious.readthedocs.io/en/latest/). + +## More links + +* [Roadmap](https://punctilious.readthedocs.io/en/latest/front_matter/roadmap_front_matter.html) +* [Contributing](https://punctilious.readthedocs.io/en/latest/front_matter/contributing_front_matter.html) +* [Project](https://punctilious.readthedocs.io/en/latest/front_matter/project_front_matter.html) +* [License](https://github.com/daviddoret/punctilious/blob/master/LICENSE) + +## Acknowledgments + +The list of dependencies is being compiled. Please wait... diff --git a/build/lib/punctilious.egg-info/SOURCES.txt b/build/lib/punctilious.egg-info/SOURCES.txt new file mode 100644 index 00000000..a054ea7b --- /dev/null +++ b/build/lib/punctilious.egg-info/SOURCES.txt @@ -0,0 +1,19 @@ +LICENSE +README.md +pyproject.toml +setup.cfg +setup.py +punctilious/__init__.py +punctilious/core.py +punctilious/graph.py +punctilious/locale_en_us.py +punctilious/plaintext.py +punctilious/random_data.py +punctilious/repm.py +punctilious/reserved_words.py +punctilious/unicode_utilities.py +punctilious/punctilious.egg-info/PKG-INFO +punctilious/punctilious.egg-info/SOURCES.txt +punctilious/punctilious.egg-info/dependency_links.txt +punctilious/punctilious.egg-info/top_level.txt +punctilious/punctilious.egg-info/zip-safe \ No newline at end of file diff --git a/build/lib/punctilious.egg-info/dependency_links.txt b/build/lib/punctilious.egg-info/dependency_links.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/build/lib/punctilious.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/build/lib/punctilious.egg-info/top_level.txt b/build/lib/punctilious.egg-info/top_level.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/build/lib/punctilious.egg-info/top_level.txt @@ -0,0 +1 @@ + diff --git a/build/lib/punctilious.egg-info/zip-safe b/build/lib/punctilious.egg-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/build/lib/punctilious.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/build/lib/random_data.py b/build/lib/random_data.py new file mode 100644 index 00000000..2be7da37 --- /dev/null +++ b/build/lib/random_data.py @@ -0,0 +1,38 @@ +import random +import numpy as np + +_consonants = ( + 'b', 'b', 'b', 'b', 'b', 'bl', 'br', 'd', 'd', 'd', 'd', 'd', 'dr', 'f', 'fl', 'fr', 'g', 'gn', + 'h', 'j', 'k', 'l', + 'm', + 'n', 'p', 'ph', 'r', 's', 'st', 't', 'v', 'z') +_vowels = ( + 'a', 'a', 'a', 'a', 'a', 'ae', 'e', 'e', 'e', 'e', 'e', 'ee', 'i', 'i', 'i', 'i', 'i', 'ia', + 'ie', 'io', 'o', 'o', + 'o', + 'o', 'o', 'oa', 'oe', 'oi', 'oo', 'ou', 'u', 'u', 'u', 'u', 'u', 'y', 'ya', 'ye', 'yo', 'yu') + +pangram1 = 'the quick brown fox jumps over the lazy dog. 0123456789!' + + +def random_word(min_syllable=2, n=3, p=.2): + global _consonants + global _vowels + num_syllables = np.random.binomial(n=n, p=p) + min_syllable + return ''.join( + (_consonants[random.randint(0, len(_consonants) - 1)] + _vowels[ + random.randint(0, len(_vowels) - 1)] for i in + range(random.randint(min_syllable, num_syllables)))) + + +def random_sentence(min_words=3, n=12, p=.2): + num_words = np.random.binomial(n=n, p=p) + min_words + sentence = ' '.join( + (random_word() for i in range(random.randint(min_words, num_words)))) + return f'{sentence}.' + + +def random_dashed_name(min_words=1, n=3, p=.2): + num_words = np.random.binomial(n=n, p=p) + min_words + return '-'.join( + (random_word() for i in range(random.randint(min_words, num_words)))) diff --git a/build/lib/repm.py b/build/lib/repm.py new file mode 100644 index 00000000..81cba144 --- /dev/null +++ b/build/lib/repm.py @@ -0,0 +1,55 @@ +"""The Representation Module (repm) is an independant module that provides IO and string manipulation utilities.""" + +_serif_bold_dict = {'a': '𝐚', 'b': '𝐛', 'c': '𝐜', 'd': '𝐝', 'e': '𝐞', 'f': '𝐟', 'g': '𝐠', 'h': '𝐡', + 'i': '𝐢', 'j': '𝐣', 'k': '𝐤', 'l': '𝐥', 'm': '𝐦', 'n': '𝐧', 'o': '𝐨', 'p': '𝐩', + 'q': '𝐪', 'r': '𝐫', 's': '𝐬', 't': '𝐭', 'u': '𝐮', 'v': '𝐯', 'w': '𝐰', 'x': '𝐱', + 'y': '𝐲', 'z': '𝐳', 'A': '𝐀', 'B': '𝐁', 'C': '𝐂', 'D': '𝐃', 'E': '𝐄', 'F': '𝐅', + 'G': '𝐆', 'H': '𝐇', 'I': '𝐈', 'J': '𝐉', 'K': '𝐊', 'L': '𝐋', 'M': '𝐌', 'N': '𝐍', + 'O': '𝐎', 'P': '𝐏', 'Q': '𝐐', 'R': '𝐑', 'S': '𝐒', 'T': '𝐓', 'U': '𝐔', 'V': '𝐕', + 'W': '𝐖', 'X': '𝐗', 'Y': '𝐘', 'Z': '𝐙', '0': '𝟎', '1': '𝟏', '2': '𝟐', '3': '𝟑', + '4': '𝟒', '5': '𝟓', '6': '𝟔', '7': '𝟕', '8': '𝟖', '9': '𝟗'} + +_monospace_dict = {'A': '𝙰', 'B': '𝙱', 'C': '𝙲', 'D': '𝙳', 'E': '𝙴', 'F': '𝙵', 'G': '𝙶', 'H': '𝙷', + 'I': '𝙸', 'J': '𝙹', 'K': '𝙺', 'L': '𝙻', 'M': '𝙼', 'N': '𝙽', 'O': '𝙾', 'P': '𝙿', + 'Q': '𝚀', 'R': '𝚁', 'S': '𝚂', 'T': '𝚃', 'U': '𝚄', 'V': '𝚅', 'W': '𝚆', 'X': '𝚇', + 'Y': '𝚈', 'Z': '𝚉'} + + +def serif_bold(s=None): + """Convert to serif bold characters the string s. + """ + global _serif_bold_dict + if isinstance(s, int): + s = str(s) + if s is None or s == '': + return '' + return ''.join([_serif_bold_dict.get(c, c) for c in s]) + + +def monospace(s=None): + """Convert to monospace characters the string s. + """ + global _monospace_dict + if isinstance(s, int): + s = str(s) + if s is None or s == '': + return '' + return ''.join([_monospace_dict.get(c, c) for c in s]) + + +class ValueName: + def __init__(self, value_name): + self._value_name = value_name + + def __hash__(self): + return hash((ValueName, self._value_name)) + + def __repr__(self): + return self._value_name + + def __str__(self): + return self._value_name + + +def prnt(s): + print(s + '\n') diff --git a/build/lib/reserved_words.py b/build/lib/reserved_words.py new file mode 100644 index 00000000..f44d4ea7 --- /dev/null +++ b/build/lib/reserved_words.py @@ -0,0 +1,16 @@ +_reserved_words = ( + 'axiom', + 'corollary', + 'lemma', + 'proposition', + 'proof', + 'punctilious', + 'relation', + 'statement', + 'theorem', + 'theory', + 'universe-of-discourse') + + +def is_reserved(w): + return w in _reserved_words diff --git a/build/lib/unicode_utilities.py b/build/lib/unicode_utilities.py new file mode 100644 index 00000000..42a715d4 --- /dev/null +++ b/build/lib/unicode_utilities.py @@ -0,0 +1,175 @@ +"""Unicode text utilities.""" + +import typing + +unicode_serif_normal_index = 0 +unicode_serif_bold_index = 1 +unicode_serif_italic_index = 2 +unicode_serif_bold_italic_index = 3 +unicode_sans_serif_normal_index = 4 +unicode_sans_serif_bold_index = 5 +unicode_sans_serif_italic_index = 6 +unicode_sans_serif_bold_italic_index = 7 +unicode_script_normal_index = 8 +unicode_script_bold_index = 9 +unicode_fraktur_normal_index = 10 +unicode_fraktur_bold_index = 11 +unicode_monospace_index = 12 +unicode_double_struck_index = 13 + +unicode_styled_characters = {'a': 'a𝐚𝑎𝒂𝖺𝗮𝘢𝙖𝒶𝓪𝔞𝖆𝚊𝕒', 'b': 'b𝐛𝑏𝒃𝖻𝗯𝘣𝙗𝒷𝓫𝔟𝖇𝚋𝕓', + 'c': 'c𝐜𝑐𝒄𝖼𝗰𝘤𝙘𝒸𝓬𝔠𝖈𝚌𝕔', 'd': 'd𝐝𝑑𝒅𝖽𝗱𝘥𝙙𝒹𝓭𝔡𝖉𝚍𝕕', + 'e': 'e𝐞𝑒𝒆𝖾𝗲𝘦𝙚ℯ𝓮𝔢𝖊𝚎𝕖', 'f': 'f𝐟𝑓𝒇𝖿𝗳𝘧𝙛𝒻𝓯𝔣𝖋𝚏𝕗', + 'g': 'g𝐠𝑔𝒈𝗀𝗴𝘨𝙜ℊ𝓰𝔤𝖌𝚐𝕘', 'h': 'h𝐡ℎ𝒉𝗁𝗵𝘩𝙝𝒽𝓱𝔥𝖍𝚑𝕙', + 'i': 'i𝐢𝑖𝒊𝗂𝗶𝘪𝙞𝒾𝓲𝔦𝖎𝚒𝕚', 'j': 'j𝐣𝑗𝒋𝗃𝗷𝘫𝙟𝒿𝓳𝔧𝖏𝚓𝕛', + 'k': 'k𝐤𝑘𝒌𝗄𝗸𝘬𝙠𝓀𝓴𝔨𝖐𝚔𝕜', 'l': 'l𝐥𝑙𝒍𝗅𝗹𝘭𝙡𝓁𝓵𝔩𝖑𝚕𝕝', + 'm': 'm𝐦𝑚𝒎𝗆𝗺𝘮𝙢𝓂𝓶𝔪𝖒𝚖𝕞', 'n': 'n𝐧𝑛𝒏𝗇𝗻𝘯𝙣𝓃𝓷𝔫𝖓𝚗𝕟', + 'o': 'o𝐨𝑜𝒐𝗈𝗼𝘰𝙤ℴ𝓸𝔬𝖔𝚘𝕠', 'p': 'p𝐩𝑝𝒑𝗉𝗽𝘱𝙥𝓅𝓹𝔭𝖕𝚙𝕡', + 'q': 'q𝐪𝑞𝒒𝗊𝗾𝘲𝙦𝓆𝓺𝔮𝖖𝚚𝕢', 'r': 'r𝐫𝑟𝒓𝗋𝗿𝘳𝙧𝓇𝓻𝔯𝖗𝚛𝕣', + 's': 's𝐬𝑠𝒔𝗌𝘀𝘴𝙨𝓈𝓼𝔰𝖘𝚜𝕤', 't': 't𝐭𝑡𝒕𝗍𝘁𝘵𝙩𝓉𝓽𝔱𝖙𝚝𝕥', + 'u': 'u𝐮𝑢𝒖𝗎𝘂𝘶𝙪𝓊𝓾𝔲𝖚𝚞𝕦', 'v': 'v𝐯𝑣𝒗𝗏𝘃𝘷𝙫𝓋𝓿𝔳𝖛𝚟𝕧', + 'w': 'w𝐰𝑤𝒘𝗐𝘄𝘸𝙬𝓌𝔀𝔴𝖜𝚠𝕨', 'x': 'x𝐱𝑥𝒙𝗑𝘅𝘹𝙭𝓍𝔁𝔵𝖝𝚡𝕩', + 'y': 'y𝐲𝑦𝒚𝗒𝘆𝘺𝙮𝓎𝔂𝔶𝖞𝚢𝕪', 'z': 'z𝐳𝑧𝒛𝗓𝘇𝘻𝙯𝓏𝔃𝔷𝖟𝚣𝕫', + 'A': 'A𝐀𝐴𝑨𝖠𝗔𝘈𝘼𝒜𝓐𝔄𝕬𝙰𝔸', 'B': 'B𝐁𝐵𝑩𝖡𝗕𝘉𝘽ℬ𝓑𝔅𝕭𝙱𝔹', + 'C': 'C𝐂𝐶𝑪𝖢𝗖𝘊𝘾𝒞𝓒ℭ𝕮𝙲ℂ', 'D': 'D𝐃𝐷𝑫𝖣𝗗𝘋𝘿𝒟𝓓𝔇𝕯𝙳𝔻', + 'E': 'E𝐄𝐸𝑬𝖤𝗘𝘌𝙀ℰ𝓔𝔈𝕰𝙴𝔼', 'F': 'F𝐅𝐹𝑭𝖥𝗙𝘍𝙁ℱ𝓕𝔉𝕱𝙵𝔽', + 'G': 'G𝐆𝐺𝑮𝖦𝗚𝘎𝙂𝒢𝓖𝔊𝕲𝙶𝔾', 'H': 'H𝐇𝐻𝑯𝖧𝗛𝘏𝙃ℋ𝓗ℌ𝕳𝙷ℍ', + 'I': 'I𝐈𝐼𝑰𝖨𝗜𝘐𝙄ℐ𝓘ℑ𝕴𝙸𝕀', 'J': 'J𝐉𝐽𝑱𝖩𝗝𝘑𝙅𝒥𝓙𝔍𝕵𝙹𝕁', + 'K': 'K𝐊𝐾𝑲𝖪𝗞𝘒𝙆𝒦𝓚𝔎𝕶𝙺𝕂', 'L': 'L𝐋𝐿𝑳𝖫𝗟𝘓𝙇ℒ𝓛𝔏𝕷𝙻𝕃', + 'M': 'M𝐌𝑀𝑴𝖬𝗠𝘔𝙈ℳ𝓜𝔐𝕸𝙼𝕄', 'N': 'N𝐍𝑁𝑵𝖭𝗡𝘕𝙉𝒩𝓝𝔑𝕹𝙽ℕ', + 'O': 'O𝐎𝑂𝑶𝖮𝗢𝘖𝙊𝒪𝓞𝔒𝕺𝙾𝕆', 'P': 'P𝐏𝑃𝑷𝖯𝗣𝘗𝙋𝒫𝓟𝔓𝕻𝙿ℙ', + 'Q': 'Q𝐐𝑄𝑸𝖰𝗤𝘘𝙌𝒬𝓠𝔔𝕼𝚀ℚ', 'R': 'R𝐑𝑅𝑹𝖱𝗥𝘙𝙍ℛ𝓡ℜ𝕽𝚁ℝ', + 'S': 'S𝐒𝑆𝑺𝖲𝗦𝘚𝙎𝒮𝓢𝔖𝕾𝚂𝕊', 'T': 'T𝐓𝑇𝑻𝖳𝗧𝘛𝙏𝒯𝓣𝔗𝕿𝚃𝕋', + 'U': 'U𝐔𝑈𝑼𝖴𝗨𝘜𝙐𝒰𝓤𝔘𝖀𝚄𝕌', 'V': 'V𝐕𝑉𝑽𝖵𝗩𝘝𝙑𝒱𝓥𝔙𝖁𝚅𝕍', + 'W': 'W𝐖𝑊𝑾𝖶𝗪𝘞𝙒𝒲𝓦𝔚𝖂𝚆𝕎', 'X': 'X𝐗𝑋𝑿𝖷𝗫𝘟𝙓𝒳𝓧𝔛𝖃𝚇𝕏', + 'Y': 'Y𝐘𝑌𝒀𝖸𝗬𝘠𝙔𝒴𝓨𝔜𝖄𝚈𝕐', 'Z': 'Z𝐙𝑍𝒁𝖹𝗭𝘡𝙕𝒵𝓩ℨ𝖅𝚉ℤ', + '0': '0𝟎0𝟎𝟢𝟬𝟢𝟬𝟢𝟬𝟢𝟬𝟶𝟘', '1': '1𝟏1𝟏𝟣𝟭𝟣𝟭𝟣𝟭𝟣𝟭𝟷𝟙', + '2': '2𝟐2𝟐𝟤𝟮𝟤𝟮𝟤𝟮𝟤𝟮𝟸𝟚', '3': '3𝟑3𝟑𝟥𝟯𝟥𝟯𝟥𝟯𝟥𝟯𝟹𝟛', + '4': '4𝟒4𝟒𝟦𝟰𝟦𝟰𝟦𝟰𝟦𝟰𝟺𝟜', '5': '5𝟓5𝟓𝟧𝟱𝟧𝟱𝟧𝟱𝟧𝟱𝟻𝟝', + '6': '6𝟔6𝟔𝟨𝟲𝟨𝟲𝟨𝟲𝟨𝟲𝟼𝟞', '7': '7𝟕7𝟕𝟩𝟳𝟩𝟳𝟩𝟳𝟩𝟳𝟽𝟟', + '8': '8𝟖8𝟖𝟪𝟴𝟪𝟴𝟪𝟴𝟪𝟴𝟾𝟠', '9': '9𝟗9𝟗𝟫𝟵𝟫𝟵𝟫𝟵𝟫𝟵𝟿𝟡'} + + +def prioritize_value(*args) -> typing.Any: + """Return the first non-None object in ⌜*args⌝.""" + for a in args: + if a is not None: + return a + return None + + +def unicode_format(s: str = '', index: int = 0, mapping: dict = None) -> str: + """Formats a string with Unicode formatting. + + :param s: A string of basic plaintext (visible ASCII characters). + :param index: The style index from the unicode_styles_dictionary. + :return: The string formatted with the desired style. + """ + global unicode_styled_characters + if mapping is not None: + return ''.join([mapping.get(c, c) for c in s]) + else: + # Obsolete approach + return ''.join([unicode_styled_characters.get(c, c * 14)[index] for c in s]) + + +def unicode_sans_serif_normal(s: str): + return unicode_format(s=s, index=unicode_sans_serif_normal_index) + + +def unicode_sans_serif_bold(s: str): + return unicode_format(s=s, index=unicode_sans_serif_bold_index) + + +def unicode_sans_serif_italic(s: str): + return unicode_format(s=s, index=unicode_sans_serif_italic_index) + + +def unicode_sans_serif_bold_italic(s: str): + return unicode_format(s=s, index=unicode_sans_serif_bold_italic_index) + + +def unicode_serif_normal(s: str): + return unicode_format(s=s, index=unicode_serif_normal_index) + + +def unicode_serif_bold(s: str): + return unicode_format(s=s, index=unicode_serif_bold_index) + + +def unicode_serif_italic(s: str): + return unicode_format(s=s, index=unicode_serif_italic_index) + + +def unicode_serif_bold_italic(s: str): + return unicode_format(s=s, index=unicode_serif_bold_italic_index) + + +def unicode_script_normal(s: str): + return unicode_format(s=s, index=unicode_script_normal_index) + + +def unicode_script_bold(s: str): + return unicode_format(s=s, index=unicode_script_bold_index) + + +def unicode_fraktur_normal(s: str): + return unicode_format(s=s, index=unicode_fraktur_normal_index) + + +def unicode_fraktur_bold(s: str): + return unicode_format(s=s, index=unicode_fraktur_bold_index) + + +def unicode_monospace(s: str): + return unicode_format(s=s, index=unicode_monospace_index) + + +def unicode_double_struck(s: str): + return unicode_format(s=s, index=unicode_double_struck_index) + + +unicode_subscript_dictionary = {'0': u'₀', '1': u'₁', '2': u'₂', '3': u'₃', '4': u'₄', '5': u'₅', + '6': u'₆', '7': u'₇', '8': u'₈', '9': u'₉', 'a': u'ₐ', 'e': u'ₑ', + 'o': u'ₒ', 'x': u'ₓ', # '???': u'ₔ', + 'h': u'ₕ', 'k': u'ₖ', 'l': u'ₗ', 'm': u'ₘ', 'n': u'ₙ', 'p': u'ₚ', + 's': u'ₛ', 't': u'ₜ', '+': u'₊', '-': u'₋', '=': u'₌', '(': u'₍', + ')': u'₎', 'j': u'ⱼ', 'i': u'ᵢ', + # Alternative from the Unicode Phonetic Extensions block: ᵢ + 'r': u'ᵣ', # Source: Unicode Phonetic Extensions block. + 'u': u'ᵤ', # Source: Unicode Phonetic Extensions block. + 'v': u'ᵥ', # Source: Unicode Phonetic Extensions block. + 'β': u'ᵦ', # Source: Unicode Phonetic Extensions block. + 'γ': u'ᵧ', # Source: Unicode Phonetic Extensions block. + # '???': u'ᵨ', # Source: Unicode Phonetic Extensions block. + 'φ': u'ᵩ', # Source: Unicode Phonetic Extensions block. + 'χ': u'ᵪ' # Source: Unicode Phonetic Extensions block. +} + + +def unicode_subscriptify(s: str = ''): + """Converts to unicode-subscript the string s. + + This is done in best effort, knowing that Unicode only contains a small subset of subscript characters. + + References: + * https://stackoverflow.com/questions/13875507/convert-numeric-strings-to-superscript + * https://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts + """ + global unicode_subscript_dictionary + if isinstance(s, int): + s = str(s) + if s is None or s == '': + return '' + return ''.join([unicode_subscript_dictionary.get(c, c) for c in s]) + + +class Unicode2(str): + """Just a wrapper around str to distinguish 'rich unicode' from 'plaintext'.""" + + def __new__(cls, s: (None, str), empty_if_none: (None, bool) = None): + empty_if_none = prioritize_value(empty_if_none, False) + if s is None and not empty_if_none: + return None + instance = super().__new__(cls, s) + return instance diff --git a/build_wheel.shell_script b/build_wheel.shell_script new file mode 100644 index 00000000..4fa2f126 --- /dev/null +++ b/build_wheel.shell_script @@ -0,0 +1 @@ +python setup.py bdist_wheel diff --git a/dist/punctilious-1.0.0-py3-none-any.whl b/dist/punctilious-1.0.0-py3-none-any.whl new file mode 100644 index 00000000..b617b038 Binary files /dev/null and b/dist/punctilious-1.0.0-py3-none-any.whl differ diff --git a/docs/build/.doctrees/environment.pickle b/docs/build/.doctrees/environment.pickle index 97a9b505..79cd9773 100644 Binary files a/docs/build/.doctrees/environment.pickle and b/docs/build/.doctrees/environment.pickle differ diff --git a/docs/build/.doctrees/front_matter/contributing_front_matter.doctree b/docs/build/.doctrees/front_matter/contributing_front_matter.doctree index a6903035..f8311874 100644 Binary files a/docs/build/.doctrees/front_matter/contributing_front_matter.doctree and b/docs/build/.doctrees/front_matter/contributing_front_matter.doctree differ diff --git a/docs/build/.doctrees/front_matter/support_front_matter.doctree b/docs/build/.doctrees/front_matter/support_front_matter.doctree index f0189bbb..e9dc131d 100644 Binary files a/docs/build/.doctrees/front_matter/support_front_matter.doctree and b/docs/build/.doctrees/front_matter/support_front_matter.doctree differ diff --git a/docs/build/_sources/front_matter/contributing_front_matter.rst.txt b/docs/build/_sources/front_matter/contributing_front_matter.rst.txt index 40ae9f2b..702f02ec 100644 --- a/docs/build/_sources/front_matter/contributing_front_matter.rst.txt +++ b/docs/build/_sources/front_matter/contributing_front_matter.rst.txt @@ -9,9 +9,9 @@ Everyone is warmly welcomed to contribute to *punctilious*. Here are some ideas on how to get started: -* If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread` and we will be most happy to help you from there. +* If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread `_ and we will be most happy to help you from there. -* If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread` and we will be most happy to help you from there. +* If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread `_ and we will be most happy to help you from there. * If you are looking for ideas on how to contribute, you may wish to have a look at the :ref:`roadmap`, and the :ref:`project`. diff --git a/docs/build/_sources/front_matter/support_front_matter.rst.txt b/docs/build/_sources/front_matter/support_front_matter.rst.txt index 3073a0b9..983cb759 100644 --- a/docs/build/_sources/front_matter/support_front_matter.rst.txt +++ b/docs/build/_sources/front_matter/support_front_matter.rst.txt @@ -4,6 +4,6 @@ Support ========================= -If you need support on *punctilious*, feel free to contact us on the `GitHub Contribute discussion thread`. +If you need support on *punctilious*, feel free to contact us on the `GitHub Contribute discussion thread `_. We will do our best effort to help you. diff --git a/docs/build/front_matter/contributing_front_matter.html b/docs/build/front_matter/contributing_front_matter.html index baa8cb97..44b7b311 100644 --- a/docs/build/front_matter/contributing_front_matter.html +++ b/docs/build/front_matter/contributing_front_matter.html @@ -104,8 +104,8 @@

Everyone is warmly welcomed to contribute to punctilious.

Here are some ideas on how to get started:

    -
  • If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our GitHub Contribute discussion thread<https://github.com/daviddoret/punctilious/discussions/166> and we will be most happy to help you from there.

  • -
  • If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our GitHub Contribute discussion thread<https://github.com/daviddoret/punctilious/discussions/166> and we will be most happy to help you from there.

  • +
  • If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our GitHub Contribute discussion thread and we will be most happy to help you from there.

  • +
  • If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our GitHub Contribute discussion thread and we will be most happy to help you from there.

  • If you are looking for ideas on how to contribute, you may wish to have a look at the Roadmap, and the The punctilious project.

diff --git a/docs/build/front_matter/support_front_matter.html b/docs/build/front_matter/support_front_matter.html index abe684db..e12daefe 100644 --- a/docs/build/front_matter/support_front_matter.html +++ b/docs/build/front_matter/support_front_matter.html @@ -101,7 +101,7 @@

Support

-

If you need support on punctilious, feel free to contact us on the GitHub Contribute discussion thread<https://github.com/daviddoret/punctilious/discussions/167>.

+

If you need support on punctilious, feel free to contact us on the GitHub Contribute discussion thread.

We will do our best effort to help you.

diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js index 53f89e71..f5c056f4 100644 --- a/docs/build/searchindex.js +++ b/docs/build/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["back_matter/back_matter_index", "back_matter/bibliography_back_matter", "front_matter/about_front_matter", "front_matter/contributing_front_matter", "front_matter/project_front_matter", "front_matter/roadmap_front_matter", "front_matter/support_front_matter", "front_matter/title_front_matter", "index", "math/concept/absorption_math_concept", "math/concept/axiom_math_concept", "math/concept/biconditional_elimination_1_math_concept", "math/concept/biconditional_elimination_2_math_concept", "math/concept/biconditional_introduction_math_concept", "math/concept/conjunction_elimination_1_math_concept", "math/concept/conjunction_elimination_2_math_concept", "math/concept/conjunction_introduction_math_concept", "math/concept/disjunction_introduction_1_math_concept", "math/concept/disjunction_introduction_2_math_concept", "math/concept/double_negation_elimination_math_concept", "math/concept/double_negation_introduction_math_concept", "math/concept/elimination_rule_math_concept", "math/concept/equal_terms_substitution_math_concept", "math/concept/equality_commutativity_math_concept", "math/concept/formula_math_concept", "math/concept/formula_statement_math_concept", "math/concept/hypothesis_math_concept", "math/concept/inconsistency_introduction_1_math_concept", "math/concept/inconsistency_introduction_2_math_concept", "math/concept/inconsistency_introduction_3_math_concept", "math/concept/inference_rule_math_concept", "math/concept/introduction_rule_math_concept", "math/concept/is_a_math_concept", "math/concept/math_concept_index", "math/concept/meta_object_math_concept", "math/concept/modus_ponens_math_concept", "math/concept/notation_form_math_concept", "math/concept/object_creation_math_concept", "math/concept/object_declaration_math_concept", "math/concept/object_inclusion_math_concept", "math/concept/object_math_concept", "math/concept/paragraph_proof_math_concept", "math/concept/proof_by_contradiction_1_math_concept", "math/concept/proof_by_contradiction_2_math_concept", "math/concept/proof_by_refutation_1_math_concept", "math/concept/proof_by_refutation_2_math_concept", "math/concept/relation_math_concept", "math/concept/statement_math_concept", "math/concept/theory_elaboration_sequence_math_concept", "math/concept/universe_of_discourse_math_concept", "math/concept/variable_substitution_math_concept", "math/math_index", "math/theory/math_theory_index", "math/theory/tao_2006/tao_2006_chapter_2_1_the_peano_axioms", "math/theory/tao_2006/tao_2006_index", "python/class/absorption_declaration_python_class", "python/class/absorption_inclusion_python_class", "python/class/inference_rule_declaration_python_class", "python/class/python_class_index", "python/class/universe_of_discourse_python_class", "python/function/create_universe_of_discourse", "python/function/python_function_index", "python/installation_python", "python/prerequisites_python", "python/python_index", "python/sample/absorption_python_sample", "python/sample/python_sample_index", "python/source_code_repository_python"], "filenames": ["back_matter\\back_matter_index.rst", "back_matter\\bibliography_back_matter.rst", "front_matter\\about_front_matter.rst", "front_matter\\contributing_front_matter.rst", "front_matter\\project_front_matter.rst", "front_matter\\roadmap_front_matter.rst", "front_matter\\support_front_matter.rst", "front_matter\\title_front_matter.rst", "index.rst", "math\\concept\\absorption_math_concept.rst", "math\\concept\\axiom_math_concept.rst", "math\\concept\\biconditional_elimination_1_math_concept.rst", "math\\concept\\biconditional_elimination_2_math_concept.rst", "math\\concept\\biconditional_introduction_math_concept.rst", "math\\concept\\conjunction_elimination_1_math_concept.rst", "math\\concept\\conjunction_elimination_2_math_concept.rst", "math\\concept\\conjunction_introduction_math_concept.rst", "math\\concept\\disjunction_introduction_1_math_concept.rst", "math\\concept\\disjunction_introduction_2_math_concept.rst", "math\\concept\\double_negation_elimination_math_concept.rst", "math\\concept\\double_negation_introduction_math_concept.rst", "math\\concept\\elimination_rule_math_concept.rst", "math\\concept\\equal_terms_substitution_math_concept.rst", "math\\concept\\equality_commutativity_math_concept.rst", "math\\concept\\formula_math_concept.rst", "math\\concept\\formula_statement_math_concept.rst", "math\\concept\\hypothesis_math_concept.rst", "math\\concept\\inconsistency_introduction_1_math_concept.rst", "math\\concept\\inconsistency_introduction_2_math_concept.rst", "math\\concept\\inconsistency_introduction_3_math_concept.rst", "math\\concept\\inference_rule_math_concept.rst", "math\\concept\\introduction_rule_math_concept.rst", "math\\concept\\is_a_math_concept.rst", "math\\concept\\math_concept_index.rst", "math\\concept\\meta_object_math_concept.rst", "math\\concept\\modus_ponens_math_concept.rst", "math\\concept\\notation_form_math_concept.rst", "math\\concept\\object_creation_math_concept.rst", "math\\concept\\object_declaration_math_concept.rst", "math\\concept\\object_inclusion_math_concept.rst", "math\\concept\\object_math_concept.rst", "math\\concept\\paragraph_proof_math_concept.rst", "math\\concept\\proof_by_contradiction_1_math_concept.rst", "math\\concept\\proof_by_contradiction_2_math_concept.rst", "math\\concept\\proof_by_refutation_1_math_concept.rst", "math\\concept\\proof_by_refutation_2_math_concept.rst", "math\\concept\\relation_math_concept.rst", "math\\concept\\statement_math_concept.rst", "math\\concept\\theory_elaboration_sequence_math_concept.rst", "math\\concept\\universe_of_discourse_math_concept.rst", "math\\concept\\variable_substitution_math_concept.rst", "math\\math_index.rst", "math\\theory\\math_theory_index.rst", "math\\theory\\tao_2006\\tao_2006_chapter_2_1_the_peano_axioms.rst", "math\\theory\\tao_2006\\tao_2006_index.rst", "python\\class\\absorption_declaration_python_class.rst", "python\\class\\absorption_inclusion_python_class.rst", "python\\class\\inference_rule_declaration_python_class.rst", "python\\class\\python_class_index.rst", "python\\class\\universe_of_discourse_python_class.rst", "python\\function\\create_universe_of_discourse.rst", "python\\function\\python_function_index.rst", "python\\installation_python.rst", "python\\prerequisites_python.rst", "python\\python_index.rst", "python\\sample\\absorption_python_sample.rst", "python\\sample\\python_sample_index.rst", "python\\source_code_repository_python.rst"], "titles": ["Index", "Bibliography", "About punctilious", "Contributing to punctilious", "The punctilious project", "Roadmap", "Support", "Punctilious", "punctilious", "absorption (math concept)", "axiom", "biconditional-elimination-1", "biconditional-elimination-2", "biconditional-introduction", "conjunction-elimination-1", "conjunction-elimination-2", "conjunction-introduction", "disjunction-introduction-1", "disjunction-introduction-2", "double-negation-elimination", "double-negation-introduction", "elimination-rule", "equal-terms-substitution", "equality-commutativity", "formula", "formula-statement", "hypothesis", "inconsistency-introduction-1", "inconsistency-introduction-2", "inconsistency-introduction-3", "inference-rule", "introduction-rule", "is-a", "Math concept", "meta-object", "modus-ponens", "notation-form", "object-creation", "object-declaration", "object-inclusion", "object", "paragraph-proof (proof-style)", "proof-by-contradiction-1", "proof-by-contradiction-2", "proof-by-refutation-1", "proof-by-refutation-2", "relation", "statement", "theory-elaboration-sequence", "universe-of-discourse", "variable-substitution", "Math", "Math theory", "Tao 2006, Real Analysis, Chapter 2.1, The Peano axioms", "Tao 2006", "AbsorptionDeclaration (python class)", "AbsorptionInclusion (python class)", "InferenceRuleDeclarationDict (python class)", "Python classes", "UniverseOfDiscourse (python class)", "create_universe_of_discourse", "Python functions", "Installation", "Prerequisites", "Python", "absorption (python sample)", "Python samples", "Source code repository"], "terms": {"bibliographi": 0, "mgz21": [1, 28, 29], "paolo": 1, "mancosu": 1, "sergio": 1, "galvan": 1, "richard": 1, "zach": 1, "an": [1, 21, 26, 27, 28, 29, 30, 31, 32, 35, 37, 38, 39, 42, 43, 44, 45, 48, 49, 50, 56, 59, 65], "introduct": [1, 11, 12, 14, 15, 19, 26, 30, 33, 48], "proof": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 33, 35, 46, 48, 50, 55, 56, 65], "theori": [1, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 42, 43, 44, 45, 49, 50, 51, 55, 56, 59, 60, 65], "normal": 1, "cut": 1, "elimin": [1, 13, 16, 20, 30, 31, 33], "consist": [1, 28, 29, 44, 48], "oxford": 1, "univers": [1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 38, 39, 42, 55, 59, 60, 65], "pressoxford": 1, "1": [1, 4, 12, 13, 15, 16, 18, 20, 21, 22, 23, 28, 29, 30, 31, 33, 41, 46, 49, 54, 65], "edit": [1, 21, 31, 46], "2021": 1, "doi": 1, "10": [1, 46], "1093": 1, "oso": 1, "9780192895936": 1, "001": 1, "0001": 1, "i": [2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 59, 60, 64, 65], "python": [2, 9, 51, 67], "open": [2, 48], "sourc": [2, 64], "project": [2, 3, 8], "In": [2, 9, 11, 12, 13, 14, 15, 26, 27, 28, 29, 32, 37, 38, 39, 42, 44, 46, 59], "clear": [2, 3], "intend": 2, "facilit": 2, "studi": 2, "mathemat": [2, 30, 33, 46, 49, 51, 52, 64], "human": [2, 7, 8], "beings": 2, "There": 2, "exist": [2, 37, 38, 42, 49], "multipl": [2, 48], "includ": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 49, 50, 65], "coq": 2, "http": [3, 4, 6, 9, 30, 41], "inria": [], "fr": [], "isabel": 2, "tum": [], "de": [], "lean": 2, "leanprov": [], "github": [3, 4, 6, 67], "io": [], "mani": 2, "more": [2, 38], "The": [2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 34, 35, 36, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 56, 59, 60, 64, 65, 67], "en": [9, 30], "wikipedia": [2, 9, 30], "org": [9, 30, 41], "wiki": [9, 30], "proof_assist": [], "page": 2, "contain": [2, 26, 38, 48, 49, 50, 59], "gener": [2, 35, 37, 38, 39, 43, 44, 45, 50, 55, 59], "purpos": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "comparison": 2, "contrast": 2, "ridicul": 2, "lilliputian": 2, "lilliput_and_blefuscu": [], "neither": 2, "length": 2, "nor": 2, "breadth": 2, "time": [2, 59], "proven": [2, 11, 12, 13, 14, 15, 48, 55], "system": 2, "besid": 2, "being": 2, "fun": 2, "thrill": 2, "learn": 2, "experi": 2, "focu": 2, "point": [2, 26], "ar": [2, 3, 5, 22, 26, 28, 29, 36, 46, 48, 49, 55, 59], "friendli": [2, 7, 8], "input": [2, 5, 43, 44, 45, 55], "e": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 46, 49, 59, 65], "write": 2, "we": [2, 3, 4, 5, 6, 16, 20, 21, 26, 27, 28, 29, 31, 38, 42, 49], "eas": 2, "us": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 32, 33, 38, 42, 48, 49, 52, 59, 62, 65], "output": [2, 5], "readabl": 2, "doe": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "pai": 2, "much": 2, "attent": 2, "perform": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "larg": 2, "scale": 2, "applic": [2, 65], "everyon": 3, "warmli": 3, "welcom": [3, 42], "here": [3, 5, 37, 38, 39, 60], "some": [3, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 42, 59, 65], "idea": 3, "how": [3, 21, 31, 65], "get": 3, "start": 3, "If": [3, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 48, 49, 65], "you": [3, 6], "feel": [3, 6], "like": 3, "develop": [3, 7, 8], "whether": 3, "have": [3, 28, 29, 50], "featur": 3, "would": 3, "work": 3, "just": 3, "free": [3, 6, 59], "touch": 3, "our": [3, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 42, 65], "discuss": [3, 6], "thread": [3, 6], "com": [3, 4, 6], "daviddoret": [3, 4, 6], "166": 3, "most": 3, "happi": 3, "help": [3, 6], "from": [3, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 37, 38, 39, 44, 48, 50, 65], "mathematician": 3, "student": 3, "amateur": 3, "profession": [3, 46], "look": 3, "mai": [3, 16, 20, 26, 48, 50], "wish": 3, "roadmap": [3, 8], "try": 4, "manag": [4, 59], "thi": [4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 34, 35, 42, 43, 44, 45, 46, 48, 50, 51, 52, 55, 59, 64, 65, 67], "user": [4, 48], "list": 5, "high": 5, "level": 5, "intent": 5, "regard": 5, "futur": 5, "punctili": [5, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 36, 42, 49, 51, 52, 62, 64, 65, 67], "continu": 5, "real": [5, 54], "analysi": [5, 54], "tao": [5, 52], "2006": [5, 52], "document": 5, "properli": 5, "all": [5, 46, 48], "infer": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 33, 35, 39, 42, 43, 44, 45, 48, 49, 50, 55, 56, 57, 59, 65], "rule": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 42, 43, 44, 45, 48, 49, 50, 55, 56, 57, 59, 65], "naiv": 5, "set": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 32, 42, 46, 48, 49, 65], "proposit": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 44, 46, 48, 65], "logic": [5, 9, 16, 20, 35], "fundament": 5, "geometri": 5, "meta": [5, 33, 48], "provid": [5, 35, 43, 44, 45, 55], "simpl": [5, 34, 46, 49, 59], "understand": 5, "error": 5, "inform": [5, 48], "messag": 5, "when": [5, 48, 59], "invalid": 5, "function": [5, 36, 42, 48, 59, 60, 64], "support": [5, 8, 36], "import": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "natur": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "text": [5, 41, 42], "ascii": 5, "unicod": [5, 48], "latex": 5, "two": [5, 28, 46], "column": 5, "pdf": [5, 41], "export": [5, 48], "json": 5, "xml": 5, "csv": 5, "need": 6, "contact": 6, "u": [6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 32, 34, 38, 42, 46, 48, 57, 59, 65], "contribut": [6, 8], "167": 6, "do": [6, 48], "best": 6, "effort": 6, "titl": [8, 30, 48], "about": [8, 38, 39], "absorptiondeclar": [9, 56, 58, 65], "class": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 42, 43, 44, 45, 46, 48, 49, 50, 64, 65], "absorptioninclus": [9, 55, 58, 65], "sampl": [9, 55, 56, 64], "well": [9, 16, 17, 18, 19, 20, 22, 23, 32, 34, 35, 42, 46, 50, 59], "known": [9, 16, 17, 18, 19, 20, 22, 23, 32, 34, 35, 42, 46, 50, 59], "valid": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 35, 42, 48, 50, 56, 65], "left": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50, 59], "p": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 35, 42, 43, 44, 45, 50, 55, 56, 65], "impli": [9, 11, 12, 13, 14, 15, 26, 35, 42, 56, 65], "q": [9, 11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 28, 35, 42, 50, 55, 56, 65], "right": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50], "vdash": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 50], "land": [9, 14, 15, 16, 26, 35, 42], "where": [9, 11, 12, 13, 22, 23, 42, 43, 44, 45, 49, 50, 59], "formula": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 33, 35, 42, 44, 46, 48, 49, 50, 55, 56, 59, 65], "statement": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 48, 50, 55, 56, 59, 65], "straightforward": [9, 11, 12, 13, 14, 15, 26, 27, 28, 29, 37, 38, 39], "languag": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 37, 38, 39, 44, 48, 65], "follow": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 36, 46, 65], "both": [9, 16, 21, 28, 29, 31], "absorption_": 9, "2": [11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 26, 27, 29, 30, 31, 33, 42, 46, 54, 65], "iff": [11, 12, 13], "true": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 44, 46, 48, 55, 59, 65], "onli": [11, 12, 13], "simplest": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 60, 65], "wai": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 60, 65], "access": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "via": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "inference_rul": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 59, 65], "abridg": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "properti": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 32, 34, 42, 48, 59, 65], "elabor": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 42, 43, 44, 45, 49, 50, 55, 56, 59, 60, 65], "sequenc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 49, 50, 55, 56, 60, 65], "pu": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 60, 65], "create_univers": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "t": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 49, 50, 55, 56, 59, 65], "biconditional_elimination_1": 11, "infer_stat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 50, 56, 65], "p_iff_q": [11, 12, 13, 65], "wa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "yet": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "declar": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 37, 39, 42, 49, 55, 57, 59, 60, 65], "discours": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 38, 39, 42, 55, 59, 60, 65], "automat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "call": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 36, 43, 48, 60, 65], "method": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 55, 59, 65], "core": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 42, 43, 44, 45, 46, 48, 50, 55, 56, 57, 59, 60, 65], "biconditionalelimination1inclus": 11, "echo": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 46, 48, 50, 55, 56, 59, 60, 65], "none": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 55, 56, 59, 60, 65], "nameset": [11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 56, 59, 65], "ref": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 56, 59, 65], "paragraph_head": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 56, 59, 65], "subtitl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 46, 48, 50, 56, 59, 65], "appli": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 35, 43, 44, 45, 50, 56, 65], "return": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 55, 56, 59, 65], "paramet": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 55, 56, 59, 65], "mandatori": [11, 12, 13, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 35, 44, 56, 65], "current": [11, 12, 13, 14, 15, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 50, 55, 56, 65], "creat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 38, 42, 60, 65], "basic": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "object": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 42, 48, 49, 59, 60, 65], "sake": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "exampl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 59, 65], "universeofdiscours": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 49, 58, 65], "o1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "o": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50, 55, 59, 65], "o2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 42, 65], "o3": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 42, 65], "r1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 65], "r": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 49, 59, 65], "signal_proposit": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 42, 46, 65], "r2": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 65], "axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 42, 48, 49, 54, 59, 65], "declare_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 59, 65], "natural_languag": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 48, 59, 65], "dummi": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "demonstr": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "necessari": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 42, 65], "t1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "theory_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "include_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 48, 65], "phi1": [11, 12, 13, 14, 15, 16, 17, 18], "axiom_interpret": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "And": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 49, 65], "final": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 44, 49, 65], "proposition_of_interest": [11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "interest": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 65], "\ud835\uddab\ud835\uddbe\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udcb0\u2083": 11, "\ud835\uddbb\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc62\ud835\udc5b\ud835\udc56\ud835\udc63\ud835\udc52\ud835\udc5f\ud835\udc60\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5c\ud835\udc53": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc51\ud835\udc56\ud835\udc60\ud835\udc50\ud835\udc5c\ud835\udc62\ud835\udc5f\ud835\udc60\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udcaf\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc61\u210e\ud835\udc52\ud835\udc5c\ud835\udc5f\ud835\udc66": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc52\ud835\udc59\ud835\udc4e\ud835\udc4f\ud835\udc5c\ud835\udc5f\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc60\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddd4\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc34\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc9c\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude0b\ud835\ude36\ud835\ude2e\ud835\ude2e\ud835\ude3a": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude22\ud835\ude39\ud835\ude2a\ud835\ude30\ud835\ude2e": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude27\ud835\ude30\ud835\ude33": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\ude25\ud835\ude26\ud835\ude2e\ud835\ude30\ud835\ude2f\ud835\ude34\ud835\ude35\ud835\ude33\ud835\ude22\ud835\ude35\ud835\ude2a\ud835\ude30\ud835\ude2f": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\ude31\ud835\ude36\ud835\ude33\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26\ud835\ude34": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddbc\ud835\uddc5\ud835\uddce\ud835\uddbd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udddc\ud835\uddfb\ud835\uddf3\ud835\uddf2\ud835\uddff\ud835\uddf2\ud835\uddfb\ud835\uddf0\ud835\uddf2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddff\ud835\ude02\ud835\uddf9\ud835\uddf2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc56\ud835\udc5b\ud835\udc53\ud835\udc52\ud835\udc5f\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc5f\ud835\udc62\ud835\udc59\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddba\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc9c": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddaf": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddba\ud835\uddc7\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcc\ud835\uddc2\ud835\uddbd\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc43\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5f\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 65], "\ud835\udc5c\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5c\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 42, 65], "\ud835\udc5f\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 65], "\ud835\udc5c\u2083": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 42, 65], "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbb\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddea\ud835\uddee\ud835\uddff\ud835\uddfb\ud835\uddf6\ud835\uddfb\ud835\uddf4": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udda1\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddc0\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddce\ud835\uddc7\ud835\uddbc\ud835\uddcd\ud835\uddc2\ud835\uddc5\ud835\uddc2\ud835\uddc8\ud835\uddce\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddcc\ud835\uddcc\ud835\uddce\ud835\uddcb\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcc\ud835\uddd2\ud835\uddc7\ud835\uddcd\ud835\uddba\ud835\uddbc\ud835\uddcd\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddc5": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddcb\ud835\uddcb\ud835\uddbe\ud835\uddbc\ud835\uddcd\ud835\uddc7\ud835\uddbe\ud835\uddcc\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddbf": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddc8\ud835\uddcb\ud835\uddc2\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbb\ud835\uddce\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddc8\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc7\ud835\uddc8\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddbe\ud835\uddcb\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddc7\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcc\ud835\uddbe\ud835\uddc6\ud835\uddba\ud835\uddc7\ud835\uddcd\ud835\uddc2\ud835\uddbc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcf\ud835\uddbe\ud835\uddcb\ud835\uddc2\ud835\uddbf\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddce\ud835\uddcc\ud835\uddba\ud835\uddc0\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc7\ud835\uddba\ud835\uddcd\ud835\uddce\ud835\uddcb\ud835\uddba\ud835\uddc5": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddcb\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddc5\ud835\uddc5\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddc9\ud835\uddbe\ud835\uddc7\ud835\uddbd\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddcb\ud835\uddba\ud835\uddc7\ud835\uddcc\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddbe\ud835\uddcb\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddc8\ud835\uddcb\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddce\ud835\uddcd\ud835\uddc1\ud835\uddc8\ud835\uddcb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddcb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc5\ud835\uddba\ud835\uddc7\ud835\uddc0\ud835\uddce\ud835\uddba\ud835\uddc0\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc8": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc4f\ud835\udc56\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc51\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\ud835\udc4e\ud835\udc59": [11, 12, 13], "\ud835\udc52\ud835\udc59\ud835\udc56\ud835\udc5a\ud835\udc56\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 14, 15, 19], "\ud835\udc0f\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 26, 65], "\ud835\udc10\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 65], "\ud835\udc43\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26], "\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "let": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 38, 65], "u4": 11, "a1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "postul": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 49, 65], "interpret": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "defin": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 49, 65], "A": [7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 46, 49, 50, 55, 57, 59, 65], "consid": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 37, 38, 39, 48, 49, 65], "p1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "therefor": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "qed": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "warn": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "warning1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "By": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "design": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 65], "assur": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "syntact": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 46, 48, 50, 55, 65], "correct": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "ani": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 46, 50, 65], "semant": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "verif": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 43, 48, 65], "content": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 48, 51, 52, 59, 64, 65], "critic": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "depend": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "translat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "author": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "q1": [11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 65], "p2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "form": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 31, 33, 46, 50, 55], "prop": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "biconditional_elimination_2": 12, "biconditionalelimination2inclus": 12, "\ud835\udcb0\u2085": 12, "u6": 12, "biconditional_introduct": 13, "biconditionalintroductioninclus": 13, "p_implies_q": [13, 26, 35, 42, 55, 56, 65], "q_implies_p": 13, "phi2": [13, 16], "biconditional_infer": 13, "bi": 13, "\ud835\udcb0\u2087": 13, "\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [13, 16, 17, 18, 20, 26, 27, 28, 29], "\ud835\udc43\u2083": [13, 16, 22, 26, 27, 28, 42], "u8": 13, "p3": [13, 16, 22, 26, 27, 28], "conjunction_elimination_1": 14, "p_and_q": [14, 15], "conjunctionelimination1inclus": 14, "\ud835\udcb0\u2089": 14, "\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [14, 15, 16, 26], "u10": 14, "conjunction_elimination_2": 15, "conjunctionelimination2inclus": 15, "\ud835\udcb0\u2081\u2081": 15, "u12": 15, "argument": [16, 20, 50], "type": [16, 20, 35, 43, 44, 45, 50, 55, 59], "deal": [16, 20], "predic": [16, 20], "particular": [16, 20], "deduct": [16, 20], "can": [16, 20, 21, 31], "conclud": [16, 20], "\u03d5": [16, 20], "\u03c8": 16, "compound": 16, "conjunction_introduct": [16, 26, 42], "conjunctionintroductioninclus": 16, "result": [16, 17, 18, 19, 20, 43, 44, 45, 50], "ariti": [16, 17, 18, 19, 20, 22, 23, 26, 42, 46], "\ud835\udcb0\u2081\u2083": 16, "u14": 16, "lor": [17, 18], "addit": [17, 18], "allow": [17, 18, 21, 30, 31, 35, 43, 44, 45, 50], "one": [17, 18, 21, 31], "either": [17, 18, 46], "p8": [17, 18], "disjunction_introduction_1": 17, "disjunctionintroduction1inclus": 17, "\ud835\udcb0\u2081\u2085": 17, "\ud835\udc51\ud835\udc56\ud835\udc60\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [17, 18], "\ud835\uddc0\ud835\uddc2\ud835\uddcf\ud835\uddbe\ud835\uddc7": [17, 18], "u16": 17, "given": [17, 18, 48, 59], "disjunction_introduction_2": 18, "disjunctionintroduction2inclus": 18, "\ud835\udcb0\u2081\u2087": 18, "u18": 18, "lnot": [19, 20, 27, 42], "double_negation_elimin": 19, "doublenegationintroductioninclus": [19, 20], "inclus": [19, 20, 33, 35, 37, 38, 48, 49, 56, 65], "target": [19, 20], "not_not_p": 19, "\ud835\udcb0\u2081\u2089": 19, "\ud835\udc51\ud835\udc5c\ud835\udc62\ud835\udc4f\ud835\udc59\ud835\udc52": [19, 20, 26], "\ud835\udc5b\ud835\udc52\ud835\udc54\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [19, 20, 26], "u20": 19, "As": 20, "express": [20, 48], "double_negation_introduct": [20, 26], "\ud835\udcb0\u2082\u2081": 20, "u22": 20, "deriv": [21, 28, 29, 30, 31], "premis": [21, 30, 31], "bicondit": [21, 30, 31, 33], "conjunct": [21, 26, 30, 31, 33], "doubl": [21, 26, 30, 31, 33], "negat": [21, 26, 27, 30, 31, 33, 42], "each": [21, 31], "tell": [21, 31], "For": [21, 31, 49], "instanc": [21, 31, 59], "show": [21, 28, 29, 31], "term": [21, 23, 28, 30, 31, 33, 46], "disjunct": [21, 30, 31, 33], "6": [21, 31], "7": [21, 31], "bruce": [21, 31], "porter": [21, 31], "vladimir": [21, 31], "lifschitz": [21, 31], "frank": [21, 31], "van": [21, 31], "harmelen": [21, 31], "editor": [21, 31], "handbook": [21, 31], "knowledg": [21, 31], "represent": [21, 31, 46, 48], "foundat": [21, 31], "artifici": [21, 31], "intellig": [21, 31], "elsevi": [21, 31], "amsterdam": [21, 31], "boston": [21, 31], "1st": [21, 31], "ed": [21, 31, 46], "2008": [21, 31], "commut": [22, 30, 33], "x": [22, 23, 26, 28, 38, 42, 59], "y": [22, 23, 26, 28, 38, 42, 59], "ident": 22, "except": 22, "everi": 22, "occurr": 22, "terms_substitut": 22, "equaltermssubstitutioninclus": 22, "x_equal_i": [22, 23], "arg": [22, 23, 35, 43, 45, 50], "proposition_x_equal_i": 22, "f": [22, 26, 42, 59], "dummy_proposit": 22, "et": 22, "\ud835\udcb0\u2082\u2083": 22, "\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59": 22, "\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60": 22, "\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [22, 26], "\ud835\udc31\u2081": [22, 23, 26, 42], "\ud835\udc32\u2081": [22, 23, 26, 42], "u24": 22, "x1": [22, 23, 26], "y1": [22, 23, 26], "substitut": [23, 26, 30, 33], "equality_commut": 23, "equalitycommutativityinclus": 23, "\ud835\udcb0\u2082\u2085": 23, "\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66": 23, "\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66": 23, "u26": 23, "special": [26, 34, 35, 43, 44, 45, 46, 55], "branch": 26, "out": 26, "child": 26, "parent": [26, 43, 44, 45, 48], "new": [26, 48, 59, 60], "note": [26, 59], "part": 26, "It": [26, 32, 46], "its": [26, 27, 28, 29, 37, 38, 39, 41, 46, 48, 49, 59], "predecessor": 26, "successor": 26, "pose": [26, 42, 44, 48], "That": 26, "what": 26, "assum": [26, 42, 43, 44, 45], "someth": 26, "pose_hypothesi": [26, 42, 48], "h": [26, 42, 43, 44, 45], "hypothesis_formula": [26, 42, 48], "h_theori": 26, "child_theori": [26, 42], "h_statement": 26, "child_stat": [26, 42], "constitut": [26, 39], "inconsistencyintroduction1inclus": [26, 27], "not_p": [26, 27, 28, 29, 42], "inconsistent_theori": [26, 27, 28, 29, 42], "inconsist": [26, 30, 33, 42, 44, 48], "condit": [26, 27, 28, 29, 48], "prove": [26, 27, 28, 29, 35, 42, 44, 48, 56, 65], "create_universe_of_discours": [26, 42, 61], "establish": [26, 42, 46], "ground": [26, 42], "symbol": [26, 32, 42, 46, 48, 59], "v": [26, 42, 59], "z": [26, 42], "implic": [26, 35, 42, 44, 56, 65], "stabil": [26, 27, 28, 29, 42, 48, 59], "take_not": [26, 48, 59], "until": [26, 48], "thei": [26, 49, 55], "come": 26, "couldn": 26, "otherwis": [26, 48, 55], "variable_substitut": [26, 42], "phi": [26, 42, 49, 50, 59], "modus_ponen": [26, 42], "without": 26, "could": [26, 27, 28, 29], "\ud835\udcb0\u2082\u2087": 26, "\ud835\ude35\ud835\ude30": 26, "\ud835\ude26\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude23\ud835\ude2d\ud835\ude2a\ud835\ude34\ud835\ude29": 26, "\ud835\ude34\ud835\ude30\ud835\ude2e\ud835\ude26": 26, "\ud835\ude28\ud835\ude33\ud835\ude30\ud835\ude36\ud835\ude2f\ud835\ude25": 26, "\ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude2a\ud835\ude35\ud835\ude2a\ud835\ude30\ud835\ude2f\ud835\ude34": 26, "\ud835\udc53\u2081": [26, 42], "\ud835\udc33\u2081": [26, 42], "\ud835\udde1\ud835\uddfc\ud835\ude01\ud835\uddf2": 26, "\ud835\uddb4\ud835\uddc7\ud835\uddcd\ud835\uddc2\ud835\uddc5": 26, "\ud835\uddcd\ud835\uddc1\ud835\uddc2\ud835\uddcc": 26, "\ud835\uddc9\ud835\uddc8\ud835\uddc2\ud835\uddc7\ud835\uddcd": 26, "\ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\ud835\uddcc": 26, "\ud835\uddba\ud835\uddcb\ud835\uddbe": 26, "\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddbd\ud835\uddbe\ud835\uddbc\ud835\uddbe\ud835\uddcc\ud835\uddcc\ud835\uddc8\ud835\uddcb\ud835\uddcc": 26, "\ud835\uddc1\ud835\uddd2\ud835\uddc9\ud835\uddc8\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddcc": [26, 42], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddd2": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcd\ud835\uddba\ud835\uddc2\ud835\uddc7\ud835\uddbe\ud835\uddbd": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddc6\ud835\uddc2\ud835\uddc7\ud835\uddc0": 26, "\ud835\uddc1": 26, "\u210b\u2081": [26, 42], "\ud835\udc34\u2082": 26, "\ud835\udc9c\u2082": 26, "\ud835\ude09\ud835\ude3a": 26, "\ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34": 26, "\ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26": 26, "\ud835\ude2a\ud835\ude34": 26, "\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26": 26, "\u2082": [26, 42], "\ud835\udddb\ud835\ude06\ud835\uddfd\ud835\uddfc\ud835\ude01\ud835\uddf5\ud835\uddf2\ud835\ude00\ud835\uddf6\ud835\ude00": [26, 42], "\ud835\udc3b\u2081": [26, 42], "\ud835\uddb3\ud835\uddc1\ud835\uddc2\ud835\uddcc": [26, 42], "\ud835\uddbe\ud835\uddc5\ud835\uddba\ud835\uddbb\ud835\uddc8\ud835\uddcb\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd": [26, 42], "\ud835\udc43\u2084": [26, 42], "\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52": 26, "\ud835\udef7": 26, "\ud835\udc43\u2085": [26, 42], "\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60": 26, "\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60": 26, "\ud835\udc0f\u2082": 26, "\ud835\udc10\u2082": 26, "\ud835\udc43\u2086": [26, 42], "\ud835\uddad\ud835\uddc8\ud835\uddcd\ud835\uddbe": 26, "\ud835\uddd0\ud835\uddc2\ud835\uddcd\ud835\uddc1\ud835\uddc8\ud835\uddce\ud835\uddcd": 26, "\ud835\uddbf": 26, "\ud835\uddc8\ud835\udfe3": 26, "\ud835\uddc8\ud835\udfe4": 26, "\ud835\uddd0\ud835\uddbe": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddce\ud835\uddc5\ud835\uddbd": 26, "\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb": 26, "\ud835\uddc8\ud835\udfe5": 26, "\u2083": 26, "\ud835\udda5\ud835\uddcb\ud835\uddc8\ud835\uddc6": 26, "\ud835\uddcc\ud835\uddce\ud835\uddbc\ud835\uddbc\ud835\uddbe\ud835\uddcc\ud835\uddcc\ud835\uddc8\ud835\uddcb\ud835\uddcc": 26, "\ud835\udc0f\u2083": 26, "\ud835\udc43\u2087": [26, 42], "u28": 26, "f1": 26, "z1": 26, "note1": 26, "h1": 26, "a2": 26, "warning2": 26, "p4": 26, "variabl": [26, 33, 38, 59], "p5": 26, "modu": [26, 30, 33, 44], "ponen": [26, 30, 33, 44], "q2": 26, "p6": 26, "note2": 26, "note3": 26, "p7": 26, "3": [27, 28, 30, 33, 46], "neg": [27, 42, 44], "inc": [27, 28, 29, 42, 43, 44, 45], "mathcal": [27, 28, 29, 42, 43, 44, 45, 49], "inconsistency_introduction_1": [27, 42], "distinct": [27, 28, 29, 37, 38, 39, 48, 51, 64], "t2": [27, 28, 29], "becaus": [27, 28, 29, 59], "own": [27, 28, 29], "\ud835\udcb0\u2082\u2089": 27, "\ud835\udc56\ud835\udc5b\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc60\ud835\udc56\ud835\udc60\ud835\udc61\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc66": [27, 28, 29], "\ud835\udc77": [27, 28, 29, 42], "\ud835\udc3c\ud835\udc5b\ud835\udc50": [27, 28, 29, 42], "\ud835\udce3": 27, "\ud835\udcaf\u2082": [27, 28, 29], "\ud835\uddd0\ud835\uddc1\ud835\uddc2\ud835\uddbc\ud835\uddc1": [27, 29], "u30": 27, "which": [27, 28, 29, 30, 38, 39], "neq": [28, 29], "equal": [28, 29, 30, 33], "inequ": 28, "appeal": [28, 29], "contentu": [28, 29, 48], "consider": [28, 29], "complet": [28, 29], "unproblemat": [28, 29], "formal": [28, 29, 38], "question": [28, 29], "never": [28, 29], "possibl": [28, 29, 38, 39, 43, 48], "\ud835\udc4e": [28, 29, 59], "altern": [28, 29], "\ud835\udc4f": [28, 29], "5": [28, 29], "inconsistency_introduction_2": 28, "inconsistencyintroduction2inclus": 28, "x_eq_i": 28, "x_neq_i": 28, "p_eq_q": 28, "eq": 28, "p_neq_q": 28, "\ud835\udcb0\u2083\u2081": 28, "\ud835\udc78": 28, "\ud835\udcaf": [28, 29], "u32": 28, "itself": 29, "inconsistency_introduction_3": 29, "inconsistencyintroduction3inclus": 29, "p_neq_p": 29, "\ud835\udcb0\u2083\u2083": 29, "\ud835\udda8\ud835\uddc7\ud835\uddbc": 29, "u34": 29, "transform": 30, "absorpt": [30, 33, 55, 56, 66], "math": [7, 30, 46, 55, 56, 65], "concept": [30, 32, 51, 55, 56, 65], "contradict": [30, 33, 44], "refut": [30, 33], "encyclopedia": 30, "url": [30, 41], "encyclopediaofmath": 30, "index": [8, 30, 46, 48, 59], "php": 30, "derivation_rul": 30, "oldid": 30, "33737": 30, "list_of_rules_of_infer": 30, "binari": 32, "relat": [32, 33, 34, 49, 51, 59, 64], "denot": 32, "belong": 32, "arbitrari": 32, "collect": [32, 49, 57, 59], "choic": 32, "distinguish": [32, 37], "loos": 32, "membership": 32, "relationdict": [32, 46, 59], "dictionari": [32, 34, 46, 48, 59], "expos": [32, 34, 42, 46, 59], "xxxxxxx": 32, "tabl": [33, 51, 52, 64], "refer": [33, 48, 51, 52, 59, 64], "kei": 33, "hypothesi": [33, 42, 43, 44, 45, 48], "notat": [33, 46], "creation": [33, 38, 39, 49, 60], "paragraph": [33, 50], "simpleobjctdict": [34, 46, 59], "objct": [34, 46, 48, 59], "todo": [34, 37, 43, 46], "move": [34, 46], "universe_of_discours": [35, 43, 44, 45, 46, 50, 55, 59], "__init__": [35, 43, 44, 45, 46, 48, 50, 57, 59], "compose_paragraph_proof": [35, 43, 44, 45, 50, 55], "should": [35, 38, 43, 44, 45, 55], "overridden": [35, 43, 44, 45, 55], "accur": [35, 38, 43, 44, 45, 55], "compos": [35, 43, 44, 45, 46, 48, 50, 55], "bool": [35, 43, 44, 45, 50, 55, 59], "infer_formula": [35, 43, 44, 45, 50, 55, 56], "verify_arg": [35, 43, 44, 45, 50, 55], "theoryelaborationsequ": [35, 59], "aka": [35, 42, 43, 44, 45, 49, 50], "fix": [36, 46], "post": 36, "pre": 36, "name": [37, 46, 48, 59, 60], "mean": [37, 38, 39, 46], "summon": 37, "footnote2": 38, "extend": [38, 39, 48], "make": [38, 39, 43, 48, 59], "speak": 38, "other": [38, 48], "whenev": 38, "newli": 38, "To": [38, 59], "even": 38, "accret": 38, "footnot": [38, 39, 49], "footnote1": 39, "element": 39, "present": 41, "singl": 41, "detail": 41, "step": 41, "justif": 41, "conclus": 41, "loui": 41, "astorino": 41, "2010": 41, "www": 41, "arlingtonschool": 41, "cm": 41, "lib": 41, "ny02215626": 41, "centric": 41, "domain": 41, "4295": 41, "proofs_1": 41, "visit": [41, 48], "2023": 41, "08": 41, "14": 41, "mathbf": [42, 43, 44, 45], "mathit": 42, "h_inconsist": 42, "proof_by_contradiction_1": 42, "not_p_hypothesi": 42, "inc_hypothesi": [42, 43, 44, 45], "packag": [42, 48], "initi": 42, "\ud835\udcb0\u2081": [42, 65], "\ud835\uddc9\ud835\uddba\ud835\uddbc\ud835\uddc4\ud835\uddba\ud835\uddc0\ud835\uddbe": 42, "\ud835\udc43\u2088": 42, "\ud835\udc43\u2089": 42, "\ud835\uddf5\ud835\ude06\ud835\uddfd": 42, "\ud835\udc5d\ud835\udc5f\ud835\udc5c\ud835\udc5c\ud835\udc53": 42, "\ud835\udc4f\ud835\udc66": 42, "\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc4e\ud835\udc51\ud835\udc56\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": 42, "\ud835\udcd7": 42, "\ud835\udc4e\ud835\udc60\ud835\udc60\ud835\udc62\ud835\udc5a\ud835\udc52": 42, "process": [42, 48], "finish": 42, "exit": 42, "code": [42, 59, 60, 64], "0": [42, 46, 48], "inferenceruleinclusiondict": 42, "repositori": 42, "complement": 42, "easili": 42, "recogn": 42, "found": [42, 48], "correspond": [42, 50], "proofbycontradiction1inclus": 42, "pbc": 42, "x_neq_y_hypothesi": 43, "tn": [43, 44, 45], "systemat": 43, "doubt": 43, "still": 43, "wrong": 43, "boldsymbol": 44, "textit": 44, "plain": 44, "p_hypothesi": 44, "p_eq_q_hypothesi": 45, "order": 46, "pair": 46, "equival": [46, 48, 49], "member": 46, "b": 46, "arb": 46, "fals": [46, 48, 55, 59], "repres": 46, "theoret": [46, 48], "assign": 46, "composit": 46, "\ud835\udf11": 46, "between": 46, "ha": 46, "signal": 46, "renam": 46, "catalog": 46, "handili": 46, "avail": [46, 59], "auto_index": [46, 48, 59], "formula_rep": 46, "signal_theoretical_morph": 46, "dashed_nam": [46, 48, 59], "acronym": [46, 48, 59], "abridged_nam": [46, 48, 59], "explicit_nam": [46, 48, 59], "compose_report": [46, 48], "kwarg": [46, 48, 50], "report": [46, 48], "describ": [46, 48], "dougla": 46, "down": 46, "3rd": 46, "barron": 46, "": [46, 48, 59], "guid": 46, "2009": 46, "isbn": 46, "13": 46, "978": 46, "7641": 46, "4139": 46, "librari": [46, 67], "congress": 46, "control": 46, "number": [46, 48], "2008931689": 46, "david": 46, "mcadam": 46, "word": 46, "second": 46, "life": 46, "stori": 46, "problem": 46, "llc": 46, "2014": 46, "extended_theori": [48, 59], "extended_theory_limit": [48, 59], "theoryelabor": 48, "model": [48, 59], "assure_interpretation_disclaim": 48, "after": 48, "first": [48, 59], "usag": 48, "compose_articl": 48, "justifi": 48, "statu": 48, "valu": 48, "undetermin": 48, "crossreference_axiom_inclus": 48, "dure": 48, "construct": 48, "cross": [48, 51, 59, 64], "alreadi": 48, "referenc": [48, 51, 64], "base": [48, 59], "crossreference_definition_endors": 48, "d": [48, 49, 59], "endors": 48, "crossreference_inference_rule_inclus": 48, "crossreference_stat": 48, "\ud835\udcae": 48, "shortcut": [48, 59], "elaborate_definit": 48, "export_article_to_fil": 48, "file_path": 48, "encod": 48, "textfil": 48, "root": 48, "limit": 48, "get_first_syntactically_equivalent_stat": 48, "include_definit": 48, "inconsistency_introduction_inference_rule_is_includ": 48, "inference_rule_inclus": 48, "iterate_statements_in_theory_chain": 48, "iter": 48, "through": 48, "sound": 48, "chain": 48, "filter": 48, "iterate_theoretical_objcts_refer": 48, "include_root": 48, "recurs": 48, "divers": 48, "confus": 48, "iterate_theory_chain": 48, "over": 48, "etc": 48, "whose": 48, "theoriz": 48, "possibli": [48, 49, 57, 59], "case": 48, "iterate_valid_propositions_in_theory_chain": 48, "open_sect": 48, "section_titl": 48, "section_numb": 48, "section_par": 48, "section": 48, "report_inconsistency_proof": 48, "inferredstat": 48, "take": [48, 59], "comment": [48, 59], "remark": [48, 59], "empti": [49, 57, 59], "o_1": 49, "o_2": 49, "ldot": 49, "o_n": 49, "o_i": 49, "organ": 49, "desir": 49, "mutual": 49, "exclus": 49, "necessarili": [49, 59], "exhaust": 49, "categori": 49, "tupl": 49, "c": 49, "_1": 49, "_2": 49, "_n": 49, "_i": 49, "lifecycl": 49, "must": 49, "ordinari": 49, "sens": 49, "n": [50, 59], "modifi": 50, "been": 50, "replac": 50, "overrid": 50, "comput": 50, "those": 50, "verifi": [50, 55], "compli": 50, "rational": [51, 64], "keep": [51, 64], "clearli": [51, 64], "implement": 52, "chapter": 54, "peano": 54, "compat": 55, "inferenceruledeclar": [58, 59], "cross_reference_axiom": 59, "axiomdeclar": 59, "cross_reference_definit": 59, "definit": [59, 65], "definitiondeclar": 59, "cross_reference_formula": 59, "cross_reference_inference_rul": 59, "ir": 59, "cross_reference_rel": 59, "cross_reference_simple_objct": 59, "simpleobjct": 59, "cross_reference_symbolic_objct": 59, "theoreticalobject": 59, "cross_reference_theori": 59, "declare_definit": 59, "declare_formula": 59, "lock_variable_scop": 59, "self": 59, "state": 59, "declare_free_vari": 59, "freevari": 59, "declare_theori": 59, "is_theory_foundation_system": 59, "elaborate_formula": 59, "get_symbol_max_index": 59, "highest": 59, "int": 59, "inferenceruledeclarationdict": 59, "unabridg": 59, "index_symbol": 59, "unindex": 59, "uniqu": 59, "integ": 59, "identifi": 59, "styledtext": 59, "simple_objct": 59, "directli": 59, "version": 59, "expect": 59, "yield": 59, "lock": 59, "scope": 59, "extens": 59, "expressli": 59, "instead": 59, "u1": 60, "insert": 60, "pip": 62, "download": 62, "prerequisit": 64, "instal": 64, "script": 65, "showcas": 65, "absorption_1": 65, "\ud835\udc4e\ud835\udc4f\ud835\udc60\ud835\udc5c\ud835\udc5f\ud835\udc5d\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": 65, "\ud835\uddba\ud835\uddc9\ud835\uddc9\ud835\uddc5\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": 65, "u2": 65, "imag": [], "_static": [], "logo": [], "full": [], "light": [], "svg": [], "height": [], "50": [], "width": [], "alt": [], "assist": [7, 8], "live": 67}, "objects": {"core": [[55, 0, 1, "", "AbsorptionDeclaration"], [56, 0, 1, "", "AbsorptionInclusion"], [57, 0, 1, "", "InferenceRuleDeclarationDict"], [42, 0, 1, "", "InferenceRuleInclusionDict"], [35, 0, 1, "", "ModusPonensDeclaration"], [35, 0, 1, "", "ModusPonensInclusion"], [43, 0, 1, "", "ProofByContradiction2Declaration"], [43, 0, 1, "", "ProofByContradiction2Inclusion"], [44, 0, 1, "", "ProofByRefutation1Declaration"], [44, 0, 1, "", "ProofByRefutation1Inclusion"], [45, 0, 1, "", "ProofByRefutation2Declaration"], [45, 0, 1, "", "ProofByRefutation2Inclusion"], [46, 0, 1, "", "Relation"], [32, 0, 1, "", "RelationDict"], [46, 0, 1, "", "SimpleObjctDict"], [48, 0, 1, "", "TheoryElaborationSequence"], [59, 0, 1, "", "UniverseOfDiscourse"], [50, 0, 1, "", "VariableSubstitutionDeclaration"], [50, 0, 1, "", "VariableSubstitutionInclusion"], [60, 3, 1, "", "create_universe_of_discourse"]], "core.AbsorptionDeclaration": [[55, 1, 1, "", "compose_paragraph_proof"], [55, 1, 1, "", "infer_formula"], [55, 1, 1, "", "verify_args"]], "core.AbsorptionInclusion": [[56, 1, 1, "", "infer_formula"], [56, 1, 1, "", "infer_statement"]], "core.InferenceRuleDeclarationDict": [[57, 1, 1, "", "__init__"]], "core.InferenceRuleInclusionDict": [[42, 2, 1, "", "proof_by_contradiction_1"]], "core.ModusPonensDeclaration": [[35, 1, 1, "", "__init__"], [35, 1, 1, "", "compose_paragraph_proof"], [35, 1, 1, "", "infer_formula"], [35, 1, 1, "", "verify_args"]], "core.ModusPonensInclusion": [[35, 1, 1, "", "__init__"], [35, 1, 1, "", "infer_formula"], [35, 1, 1, "", "infer_statement"]], "core.ProofByContradiction2Declaration": [[43, 1, 1, "", "__init__"], [43, 1, 1, "", "compose_paragraph_proof"], [43, 1, 1, "", "infer_formula"], [43, 1, 1, "", "verify_args"]], "core.ProofByContradiction2Inclusion": [[43, 1, 1, "", "__init__"], [43, 1, 1, "", "infer_formula"], [43, 1, 1, "", "infer_statement"]], "core.ProofByRefutation1Declaration": [[44, 1, 1, "", "__init__"], [44, 1, 1, "", "compose_paragraph_proof"], [44, 1, 1, "", "infer_formula"], [44, 1, 1, "", "verify_args"]], "core.ProofByRefutation1Inclusion": [[44, 1, 1, "", "__init__"], [44, 1, 1, "", "infer_formula"], [44, 1, 1, "", "infer_statement"]], "core.ProofByRefutation2Declaration": [[45, 1, 1, "", "__init__"], [45, 1, 1, "", "compose_paragraph_proof"], [45, 1, 1, "", "infer_formula"], [45, 1, 1, "", "verify_args"]], "core.ProofByRefutation2Inclusion": [[45, 1, 1, "", "__init__"], [45, 1, 1, "", "infer_formula"], [45, 1, 1, "", "infer_statement"]], "core.Relation": [[46, 1, 1, "", "__init__"], [46, 1, 1, "", "compose_report"]], "core.RelationDict": [[32, 2, 1, "", "is_a"]], "core.SimpleObjctDict": [[46, 2, 1, "", "relation"]], "core.TheoryElaborationSequence": [[48, 1, 1, "", "__init__"], [48, 1, 1, "", "assure_interpretation_disclaimer"], [48, 1, 1, "", "compose_article"], [48, 1, 1, "", "compose_report"], [48, 2, 1, "", "consistency"], [48, 1, 1, "", "crossreference_axiom_inclusion"], [48, 1, 1, "", "crossreference_definition_endorsement"], [48, 1, 1, "", "crossreference_inference_rule_inclusion"], [48, 1, 1, "", "crossreference_statement"], [48, 1, 1, "", "d"], [48, 1, 1, "", "export_article_to_file"], [48, 2, 1, "", "extended_theory"], [48, 2, 1, "", "extended_theory_limit"], [48, 1, 1, "", "get_first_syntactically_equivalent_statement"], [48, 2, 1, "", "i"], [48, 1, 1, "", "include_axiom"], [48, 1, 1, "", "include_definition"], [48, 2, 1, "", "inconsistency_introduction_inference_rule_is_included"], [48, 2, 1, "", "inference_rule_inclusions"], [48, 1, 1, "", "iterate_statements_in_theory_chain"], [48, 1, 1, "", "iterate_theoretical_objcts_references"], [48, 1, 1, "", "iterate_theory_chain"], [48, 1, 1, "", "iterate_valid_propositions_in_theory_chain"], [48, 1, 1, "", "open_section"], [48, 1, 1, "", "pose_hypothesis"], [48, 1, 1, "", "report_inconsistency_proof"], [48, 2, 1, "", "stabilized"], [48, 1, 1, "", "take_note"]], "core.UniverseOfDiscourse": [[59, 1, 1, "", "__init__"], [59, 1, 1, "", "cross_reference_axiom"], [59, 1, 1, "", "cross_reference_definition"], [59, 1, 1, "", "cross_reference_formula"], [59, 1, 1, "", "cross_reference_inference_rule"], [59, 1, 1, "", "cross_reference_relation"], [59, 1, 1, "", "cross_reference_simple_objct"], [59, 1, 1, "", "cross_reference_symbolic_objct"], [59, 1, 1, "", "cross_reference_theory"], [59, 1, 1, "", "declare_axiom"], [59, 1, 1, "", "declare_definition"], [59, 1, 1, "", "declare_formula"], [59, 1, 1, "", "declare_free_variable"], [59, 1, 1, "", "declare_theory"], [59, 1, 1, "", "f"], [59, 1, 1, "", "get_symbol_max_index"], [59, 2, 1, "", "i"], [59, 1, 1, "", "index_symbol"], [59, 2, 1, "", "inference_rules"], [59, 2, 1, "", "o"], [59, 2, 1, "", "r"], [59, 2, 1, "", "relations"], [59, 2, 1, "", "simple_objcts"], [59, 1, 1, "", "t"], [59, 1, 1, "", "take_note"], [59, 1, 1, "", "v"]], "core.VariableSubstitutionDeclaration": [[50, 1, 1, "", "__init__"], [50, 1, 1, "", "compose_paragraph_proof"], [50, 1, 1, "", "infer_formula"], [50, 1, 1, "", "verify_args"]], "core.VariableSubstitutionInclusion": [[50, 1, 1, "", "__init__"], [50, 1, 1, "", "infer_formula"], [50, 1, 1, "", "infer_statement"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "function", "Python function"]}, "titleterms": {"index": 0, "back": [0, 8], "matter": [0, 8], "bibliographi": [1, 9, 21, 30, 31, 32, 34, 35, 36, 41, 42, 43, 44, 45, 46, 48, 50], "about": 2, "punctili": [2, 3, 4, 7, 8, 30, 46], "so": 2, "why": 2, "develop": [2, 5], "yet": 2, "anoth": 2, "math": [2, 5, 8, 9, 33, 51, 52], "proof": [2, 41, 42, 43, 44, 45], "assist": 2, "contribut": 3, "The": [4, 53], "project": 4, "roadmap": 5, "formal": 5, "theori": [5, 48, 52], "human": 5, "friendli": 5, "support": [6, 30], "front": 8, "python": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 35, 42, 43, 44, 45, 46, 48, 49, 50, 55, 56, 57, 58, 59, 61, 64, 65, 66], "absorpt": [9, 65], "concept": [9, 33], "definit": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50], "axiom": [10, 53], "bicondit": [11, 12, 13], "elimin": [11, 12, 14, 15, 19, 21], "1": [11, 14, 17, 27, 42, 44, 53], "quot": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31], "implement": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 35, 42, 43, 44, 45, 46, 48, 49, 50], "sampl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65, 66], "usag": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "sourc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65, 67], "code": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65, 67], "unicod": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "output": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "plaintext": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "2": [12, 15, 18, 28, 43, 45, 53], "introduct": [13, 16, 17, 18, 20, 21, 27, 28, 29, 31], "conjunct": [14, 15, 16], "disjunct": [17, 18], "doubl": [19, 20], "negat": [19, 20], "rule": [21, 30, 31], "list": [21, 30, 31, 34, 36], "well": [21, 31], "known": [21, 31], "equal": [22, 23], "term": 22, "substitut": [22, 50], "commut": 23, "formula": [24, 25], "statement": [25, 47], "hypothesi": 26, "inconsist": [27, 28, 29], "3": 29, "infer": 30, "synonym": 30, "nativ": 30, "see": [30, 31], "also": [30, 31], "i": 32, "is_a": 32, "meta": [34, 46], "object": [34, 37, 38, 39, 40, 46], "modu": 35, "ponen": 35, "modusponensdeclar": 35, "modusponensinclus": 35, "notat": 36, "form": 36, "creation": 37, "declar": 38, "inclus": 39, "paragraph": 41, "style": 41, "contradict": [42, 43], "document": 42, "proofbycontradiction2declar": 43, "proofbycontradiction2inclus": 43, "refut": [44, 45], "proofbyrefutation1declar": 44, "proofbyrefutation1inclus": 44, "proofbyrefutation2declar": 45, "proofbyrefutation2inclus": 45, "relat": 46, "kei": 46, "properti": 46, "data": 46, "model": 46, "elabor": 48, "sequenc": 48, "theoryelaborationsequ": 48, "note": 48, "univers": 49, "discours": 49, "variabl": 50, "variablesubstitutiondeclar": 50, "variablesubstitutioninclus": 50, "tao": [53, 54], "2006": [53, 54], "real": 53, "analysi": 53, "chapter": 53, "peano": 53, "absorptiondeclar": 55, "class": [55, 56, 57, 58, 59], "absorptioninclus": 56, "inferenceruledeclarationdict": 57, "universeofdiscours": 59, "create_universe_of_discours": 60, "function": 61, "instal": 62, "prerequisit": 63, "repositori": 67, "tabl": 8, "content": 8}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinxcontrib.bibtex": 9, "sphinx": 58}, "alltitles": {"Index": [[0, "index"]], "Back matter": [[0, null], [8, null]], "Bibliography": [[1, "id1"], [9, "bibliography"], [21, "bibliography"], [30, "bibliography"], [31, "bibliography"], [36, "bibliography"], [41, "bibliography"], [32, "bibliography"], [34, "bibliography"], [35, "bibliography"], [42, "bibliography"], [43, "bibliography"], [44, "bibliography"], [45, "bibliography"], [46, "bibliography"], [48, "bibliography"], [50, "bibliography"]], "Contributing to punctilious": [[3, "contributing-to-punctilious"]], "The punctilious project": [[4, "the-punctilious-project"]], "Roadmap": [[5, "roadmap"]], "Formalization of Math theories": [[5, "formalization-of-math-theories"]], "Human-friendliness": [[5, "human-friendliness"]], "Developer-friendliness": [[5, "developer-friendliness"]], "Support": [[6, "support"]], "absorption (math concept)": [[9, "absorption"]], "Definition": [[9, "definition"], [21, "definition"], [30, "definition"], [31, "definition"], [36, "definition"], [37, "definition"], [38, "definition"], [39, "definition"], [41, "definition"], [49, "definition"], [32, "definition"], [34, "definition"], [35, "definition"], [42, "definition"], [43, "definition"], [44, "definition"], [45, "definition"], [46, "definition"], [48, "definition"], [50, "definition"], [11, "definition"], [12, "definition"], [13, "definition"], [14, "definition"], [15, "definition"], [16, "definition"], [17, "definition"], [18, "definition"], [19, "definition"], [20, "definition"], [22, "definition"], [23, "definition"], [26, "definition"], [27, "definition"], [28, "definition"], [29, "definition"]], "axiom": [[10, "axiom"]], "Quotes": [[21, "quotes"], [31, "quotes"], [11, "quotes"], [12, "quotes"], [13, "quotes"], [14, "quotes"], [15, "quotes"], [16, "quotes"], [17, "quotes"], [18, "quotes"], [19, "quotes"], [20, "quotes"], [22, "quotes"], [23, "quotes"], [26, "quotes"], [27, "quotes"], [28, "quotes"], [29, "quotes"]], "elimination-rule": [[21, "elimination-rule"]], "List of well-known introduction-rules": [[21, "list-of-well-known-introduction-rules"], [31, "list-of-well-known-introduction-rules"]], "formula": [[24, "formula"]], "formula-statement": [[25, "formula-statement"]], "inference-rule": [[30, "inference-rules"]], "Synonyms": [[30, "synonyms"]], "List of inference-rules natively supported by punctilious": [[30, "list-of-inference-rules-natively-supported-by-punctilious"]], "See also": [[30, "see-also"], [31, "see-also"]], "introduction-rule": [[31, "introduction-rule"]], "Math concept": [[33, "math-concept"]], "Concept": [[33, null]], "List": [[36, "list"], [34, "list"]], "notation-form": [[36, "notation-form"]], "object-creation": [[37, "object-creation"]], "object-declaration": [[38, "object-declaration"]], "object-inclusion": [[39, "object-inclusion"]], "object": [[40, "objects"]], "paragraph-proof (proof-style)": [[41, "paragraph-proof-proof-style"]], "statement": [[47, "theory-statement"]], "Python implementation": [[49, "python-implementation"], [32, "python-implementation"], [35, "python-implementation"], [42, "python-implementation"], [43, "python-implementation"], [44, "python-implementation"], [45, "python-implementation"], [46, "python-implementation"], [48, "python-implementation"], [50, "python-implementation"], [11, "python-implementation"], [12, "python-implementation"], [13, "python-implementation"], [14, "python-implementation"], [15, "python-implementation"], [16, "python-implementation"], [17, "python-implementation"], [18, "python-implementation"], [19, "python-implementation"], [20, "python-implementation"], [22, "python-implementation"], [23, "python-implementation"], [26, "python-implementation"], [27, "python-implementation"], [28, "python-implementation"], [29, "python-implementation"]], "universe-of-discourse": [[49, "universe-of-discourse"]], "Math": [[51, "math"], [51, null], [8, null]], "Math theory": [[52, "math-theory"]], "Theory": [[52, null]], "Tao 2006, Real Analysis, Chapter 2.1, The Peano axioms": [[53, "tao-2006-real-analysis-chapter-2-1-the-peano-axioms"]], "Tao 2006": [[54, "tao-2006"], [54, null]], "Python classes": [[58, "python-classes"]], "Class": [[58, null]], "Python functions": [[61, "python-functions"]], "Function": [[61, null]], "Installation": [[62, "installation"]], "Prerequisites": [[63, "prerequisites"]], "Python": [[64, "python"], [64, null], [8, null]], "Python samples": [[66, "python-samples"]], "Sample": [[66, null]], "is-a": [[32, "is-a"]], "is_a": [[32, "id2"]], "meta-object": [[34, "meta-object"], [46, "meta-object"]], "modus-ponens": [[35, "mp"]], "ModusPonensDeclaration": [[35, "modusponensdeclaration"]], "ModusPonensInclusion": [[35, "modusponensinclusion"]], "proof-by-contradiction-1": [[42, "proof-by-contradiction-1"]], "Sample usage": [[42, "sample-usage"]], "Documentation": [[42, "documentation"]], "proof-by-contradiction-2": [[43, "proof-by-contradiction-2"]], "ProofByContradiction2Declaration": [[43, "proofbycontradiction2declaration"]], "ProofByContradiction2Inclusion": [[43, "proofbycontradiction2inclusion"]], "proof-by-refutation-1": [[44, "proof-by-refutation-1"]], "ProofByRefutation1Declaration": [[44, "proofbyrefutation1declaration"]], "ProofByRefutation1Inclusion": [[44, "proofbyrefutation1inclusion"]], "proof-by-refutation-2": [[45, "proof-by-refutation-2"]], "ProofByRefutation2Declaration": [[45, "proofbyrefutation2declaration"]], "ProofByRefutation2Inclusion": [[45, "proofbyrefutation2inclusion"]], "relation": [[46, "relation"]], "Key properties": [[46, "key-properties"]], "Punctilious data model": [[46, "punctilious-data-model"]], "Relation": [[46, "id4"]], "theory-elaboration-sequence": [[48, "theory-elaboration-sequences"]], "TheoryElaborationSequence": [[48, "theoryelaborationsequence"]], "Note": [[48, "note"]], "variable-substitution": [[50, "variable-substitution"]], "VariableSubstitutionDeclaration": [[50, "variablesubstitutiondeclaration"]], "VariableSubstitutionInclusion": [[50, "variablesubstitutioninclusion"]], "AbsorptionDeclaration (python class)": [[55, "absorptiondeclaration-python-class"]], "AbsorptionInclusion (python class)": [[56, "absorptioninclusion-python-class"]], "InferenceRuleDeclarationDict (python class)": [[57, "inferenceruledeclarationdict-python-class"]], "UniverseOfDiscourse (python class)": [[59, "universeofdiscourse-python-class"]], "create_universe_of_discourse": [[60, "create-universe-of-discourse"]], "Punctilious": [[7, "punctilious"]], "punctilious": [[8, "punctilious"]], "Table of contents": [[8, "table-of-contents"]], "Front matter": [[8, null]], "About punctilious": [[2, "about-punctilious"]], "So why develop yet another math proof assistant?": [[2, "so-why-develop-yet-another-math-proof-assistant"]], "biconditional-elimination-1": [[11, "biconditional-elimination-1"]], "Python sample usage": [[11, "python-sample-usage"], [12, "python-sample-usage"], [13, "python-sample-usage"], [14, "python-sample-usage"], [15, "python-sample-usage"], [16, "python-sample-usage"], [17, "python-sample-usage"], [18, "python-sample-usage"], [19, "python-sample-usage"], [20, "python-sample-usage"], [22, "python-sample-usage"], [23, "python-sample-usage"], [26, "python-sample-usage"], [27, "python-sample-usage"], [28, "python-sample-usage"], [29, "python-sample-usage"]], "Source code": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "source-code"]], "Unicode output": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "unicode-output"]], "Plaintext output": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "plaintext-output"]], "biconditional-elimination-2": [[12, "biconditional-elimination-2"]], "biconditional-introduction": [[13, "biconditional-introduction"]], "conjunction-elimination-1": [[14, "conjunction-elimination-1"]], "conjunction-elimination-2": [[15, "conjunction-elimination-2"]], "conjunction-introduction": [[16, "conjunction-introduction"]], "disjunction-introduction-1": [[17, "disjunction-introduction-1"]], "disjunction-introduction-2": [[18, "disjunction-introduction-2"]], "double-negation-elimination": [[19, "double-negation-elimination"]], "double-negation-introduction": [[20, "double-negation-introduction"]], "equal-terms-substitution": [[22, "equal-terms-substitution"]], "equality-commutativity": [[23, "equality-commutativity"]], "hypothesis": [[26, "hypothesis"]], "inconsistency-introduction-1": [[27, "inconsistency-introduction-1"]], "inconsistency-introduction-2": [[28, "inconsistency-introduction-2"]], "inconsistency-introduction-3": [[29, "inconsistency-introduction-3"]], "absorption (python sample)": [[65, "absorption-python-sample"]], "Usage": [[65, "usage"]], "Source code repository": [[67, "source-code"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["back_matter/back_matter_index", "back_matter/bibliography_back_matter", "front_matter/about_front_matter", "front_matter/contributing_front_matter", "front_matter/project_front_matter", "front_matter/roadmap_front_matter", "front_matter/support_front_matter", "front_matter/title_front_matter", "index", "math/concept/absorption_math_concept", "math/concept/axiom_math_concept", "math/concept/biconditional_elimination_1_math_concept", "math/concept/biconditional_elimination_2_math_concept", "math/concept/biconditional_introduction_math_concept", "math/concept/conjunction_elimination_1_math_concept", "math/concept/conjunction_elimination_2_math_concept", "math/concept/conjunction_introduction_math_concept", "math/concept/disjunction_introduction_1_math_concept", "math/concept/disjunction_introduction_2_math_concept", "math/concept/double_negation_elimination_math_concept", "math/concept/double_negation_introduction_math_concept", "math/concept/elimination_rule_math_concept", "math/concept/equal_terms_substitution_math_concept", "math/concept/equality_commutativity_math_concept", "math/concept/formula_math_concept", "math/concept/formula_statement_math_concept", "math/concept/hypothesis_math_concept", "math/concept/inconsistency_introduction_1_math_concept", "math/concept/inconsistency_introduction_2_math_concept", "math/concept/inconsistency_introduction_3_math_concept", "math/concept/inference_rule_math_concept", "math/concept/introduction_rule_math_concept", "math/concept/is_a_math_concept", "math/concept/math_concept_index", "math/concept/meta_object_math_concept", "math/concept/modus_ponens_math_concept", "math/concept/notation_form_math_concept", "math/concept/object_creation_math_concept", "math/concept/object_declaration_math_concept", "math/concept/object_inclusion_math_concept", "math/concept/object_math_concept", "math/concept/paragraph_proof_math_concept", "math/concept/proof_by_contradiction_1_math_concept", "math/concept/proof_by_contradiction_2_math_concept", "math/concept/proof_by_refutation_1_math_concept", "math/concept/proof_by_refutation_2_math_concept", "math/concept/relation_math_concept", "math/concept/statement_math_concept", "math/concept/theory_elaboration_sequence_math_concept", "math/concept/universe_of_discourse_math_concept", "math/concept/variable_substitution_math_concept", "math/math_index", "math/theory/math_theory_index", "math/theory/tao_2006/tao_2006_chapter_2_1_the_peano_axioms", "math/theory/tao_2006/tao_2006_index", "python/class/absorption_declaration_python_class", "python/class/absorption_inclusion_python_class", "python/class/inference_rule_declaration_python_class", "python/class/python_class_index", "python/class/universe_of_discourse_python_class", "python/function/create_universe_of_discourse", "python/function/python_function_index", "python/installation_python", "python/prerequisites_python", "python/python_index", "python/sample/absorption_python_sample", "python/sample/python_sample_index", "python/source_code_repository_python"], "filenames": ["back_matter\\back_matter_index.rst", "back_matter\\bibliography_back_matter.rst", "front_matter\\about_front_matter.rst", "front_matter\\contributing_front_matter.rst", "front_matter\\project_front_matter.rst", "front_matter\\roadmap_front_matter.rst", "front_matter\\support_front_matter.rst", "front_matter\\title_front_matter.rst", "index.rst", "math\\concept\\absorption_math_concept.rst", "math\\concept\\axiom_math_concept.rst", "math\\concept\\biconditional_elimination_1_math_concept.rst", "math\\concept\\biconditional_elimination_2_math_concept.rst", "math\\concept\\biconditional_introduction_math_concept.rst", "math\\concept\\conjunction_elimination_1_math_concept.rst", "math\\concept\\conjunction_elimination_2_math_concept.rst", "math\\concept\\conjunction_introduction_math_concept.rst", "math\\concept\\disjunction_introduction_1_math_concept.rst", "math\\concept\\disjunction_introduction_2_math_concept.rst", "math\\concept\\double_negation_elimination_math_concept.rst", "math\\concept\\double_negation_introduction_math_concept.rst", "math\\concept\\elimination_rule_math_concept.rst", "math\\concept\\equal_terms_substitution_math_concept.rst", "math\\concept\\equality_commutativity_math_concept.rst", "math\\concept\\formula_math_concept.rst", "math\\concept\\formula_statement_math_concept.rst", "math\\concept\\hypothesis_math_concept.rst", "math\\concept\\inconsistency_introduction_1_math_concept.rst", "math\\concept\\inconsistency_introduction_2_math_concept.rst", "math\\concept\\inconsistency_introduction_3_math_concept.rst", "math\\concept\\inference_rule_math_concept.rst", "math\\concept\\introduction_rule_math_concept.rst", "math\\concept\\is_a_math_concept.rst", "math\\concept\\math_concept_index.rst", "math\\concept\\meta_object_math_concept.rst", "math\\concept\\modus_ponens_math_concept.rst", "math\\concept\\notation_form_math_concept.rst", "math\\concept\\object_creation_math_concept.rst", "math\\concept\\object_declaration_math_concept.rst", "math\\concept\\object_inclusion_math_concept.rst", "math\\concept\\object_math_concept.rst", "math\\concept\\paragraph_proof_math_concept.rst", "math\\concept\\proof_by_contradiction_1_math_concept.rst", "math\\concept\\proof_by_contradiction_2_math_concept.rst", "math\\concept\\proof_by_refutation_1_math_concept.rst", "math\\concept\\proof_by_refutation_2_math_concept.rst", "math\\concept\\relation_math_concept.rst", "math\\concept\\statement_math_concept.rst", "math\\concept\\theory_elaboration_sequence_math_concept.rst", "math\\concept\\universe_of_discourse_math_concept.rst", "math\\concept\\variable_substitution_math_concept.rst", "math\\math_index.rst", "math\\theory\\math_theory_index.rst", "math\\theory\\tao_2006\\tao_2006_chapter_2_1_the_peano_axioms.rst", "math\\theory\\tao_2006\\tao_2006_index.rst", "python\\class\\absorption_declaration_python_class.rst", "python\\class\\absorption_inclusion_python_class.rst", "python\\class\\inference_rule_declaration_python_class.rst", "python\\class\\python_class_index.rst", "python\\class\\universe_of_discourse_python_class.rst", "python\\function\\create_universe_of_discourse.rst", "python\\function\\python_function_index.rst", "python\\installation_python.rst", "python\\prerequisites_python.rst", "python\\python_index.rst", "python\\sample\\absorption_python_sample.rst", "python\\sample\\python_sample_index.rst", "python\\source_code_repository_python.rst"], "titles": ["Index", "Bibliography", "About punctilious", "Contributing to punctilious", "The punctilious project", "Roadmap", "Support", "Punctilious", "punctilious", "absorption (math concept)", "axiom", "biconditional-elimination-1", "biconditional-elimination-2", "biconditional-introduction", "conjunction-elimination-1", "conjunction-elimination-2", "conjunction-introduction", "disjunction-introduction-1", "disjunction-introduction-2", "double-negation-elimination", "double-negation-introduction", "elimination-rule", "equal-terms-substitution", "equality-commutativity", "formula", "formula-statement", "hypothesis", "inconsistency-introduction-1", "inconsistency-introduction-2", "inconsistency-introduction-3", "inference-rule", "introduction-rule", "is-a", "Math concept", "meta-object", "modus-ponens", "notation-form", "object-creation", "object-declaration", "object-inclusion", "object", "paragraph-proof (proof-style)", "proof-by-contradiction-1", "proof-by-contradiction-2", "proof-by-refutation-1", "proof-by-refutation-2", "relation", "statement", "theory-elaboration-sequence", "universe-of-discourse", "variable-substitution", "Math", "Math theory", "Tao 2006, Real Analysis, Chapter 2.1, The Peano axioms", "Tao 2006", "AbsorptionDeclaration (python class)", "AbsorptionInclusion (python class)", "InferenceRuleDeclarationDict (python class)", "Python classes", "UniverseOfDiscourse (python class)", "create_universe_of_discourse", "Python functions", "Installation", "Prerequisites", "Python", "absorption (python sample)", "Python samples", "Source code repository"], "terms": {"bibliographi": 0, "mgz21": [1, 28, 29], "paolo": 1, "mancosu": 1, "sergio": 1, "galvan": 1, "richard": 1, "zach": 1, "an": [1, 21, 26, 27, 28, 29, 30, 31, 32, 35, 37, 38, 39, 42, 43, 44, 45, 48, 49, 50, 56, 59, 65], "introduct": [1, 11, 12, 14, 15, 19, 26, 30, 33, 48], "proof": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 33, 35, 46, 48, 50, 55, 56, 65], "theori": [1, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 42, 43, 44, 45, 49, 50, 51, 55, 56, 59, 60, 65], "normal": 1, "cut": 1, "elimin": [1, 13, 16, 20, 30, 31, 33], "consist": [1, 28, 29, 44, 48], "oxford": 1, "univers": [1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 38, 39, 42, 55, 59, 60, 65], "pressoxford": 1, "1": [1, 4, 12, 13, 15, 16, 18, 20, 21, 22, 23, 28, 29, 30, 31, 33, 41, 46, 49, 54, 65], "edit": [1, 21, 31, 46], "2021": 1, "doi": 1, "10": [1, 46], "1093": 1, "oso": 1, "9780192895936": 1, "001": 1, "0001": 1, "i": [2, 3, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 59, 60, 64, 65], "python": [2, 9, 51, 67], "open": [2, 48], "sourc": [2, 64], "project": [2, 3, 8], "In": [2, 9, 11, 12, 13, 14, 15, 26, 27, 28, 29, 32, 37, 38, 39, 42, 44, 46, 59], "clear": [2, 3], "intend": 2, "facilit": 2, "studi": 2, "mathemat": [2, 30, 33, 46, 49, 51, 52, 64], "human": [2, 7, 8], "beings": 2, "There": 2, "exist": [2, 37, 38, 42, 49], "multipl": [2, 48], "includ": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 49, 50, 65], "coq": 2, "http": [4, 9, 30, 41], "inria": [], "fr": [], "isabel": 2, "tum": [], "de": [], "lean": 2, "leanprov": [], "github": [3, 4, 6, 67], "io": [], "mani": 2, "more": [2, 38], "The": [2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 34, 35, 36, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 56, 59, 60, 64, 65, 67], "en": [9, 30], "wikipedia": [2, 9, 30], "org": [9, 30, 41], "wiki": [9, 30], "proof_assist": [], "page": 2, "contain": [2, 26, 38, 48, 49, 50, 59], "gener": [2, 35, 37, 38, 39, 43, 44, 45, 50, 55, 59], "purpos": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "comparison": 2, "contrast": 2, "ridicul": 2, "lilliputian": 2, "lilliput_and_blefuscu": [], "neither": 2, "length": 2, "nor": 2, "breadth": 2, "time": [2, 59], "proven": [2, 11, 12, 13, 14, 15, 48, 55], "system": 2, "besid": 2, "being": 2, "fun": 2, "thrill": 2, "learn": 2, "experi": 2, "focu": 2, "point": [2, 26], "ar": [2, 3, 5, 22, 26, 28, 29, 36, 46, 48, 49, 55, 59], "friendli": [2, 7, 8], "input": [2, 5, 43, 44, 45, 55], "e": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 46, 49, 59, 65], "write": 2, "we": [2, 3, 4, 5, 6, 16, 20, 21, 26, 27, 28, 29, 31, 38, 42, 49], "eas": 2, "us": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 32, 33, 38, 42, 48, 49, 52, 59, 62, 65], "output": [2, 5], "readabl": 2, "doe": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "pai": 2, "much": 2, "attent": 2, "perform": [2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "larg": 2, "scale": 2, "applic": [2, 65], "everyon": 3, "warmli": 3, "welcom": [3, 42], "here": [3, 5, 37, 38, 39, 60], "some": [3, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 42, 59, 65], "idea": 3, "how": [3, 21, 31, 65], "get": 3, "start": 3, "If": [3, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 48, 49, 65], "you": [3, 6], "feel": [3, 6], "like": 3, "develop": [3, 7, 8], "whether": 3, "have": [3, 28, 29, 50], "featur": 3, "would": 3, "work": 3, "just": 3, "free": [3, 6, 59], "touch": 3, "our": [3, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 42, 65], "discuss": [3, 6], "thread": [3, 6], "com": 4, "daviddoret": 4, "166": [], "most": 3, "happi": 3, "help": [3, 6], "from": [3, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 37, 38, 39, 44, 48, 50, 65], "mathematician": 3, "student": 3, "amateur": 3, "profession": [3, 46], "look": 3, "mai": [3, 16, 20, 26, 48, 50], "wish": 3, "roadmap": [3, 8], "try": 4, "manag": [4, 59], "thi": [4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 34, 35, 42, 43, 44, 45, 46, 48, 50, 51, 52, 55, 59, 64, 65, 67], "user": [4, 48], "list": 5, "high": 5, "level": 5, "intent": 5, "regard": 5, "futur": 5, "punctili": [5, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 36, 42, 49, 51, 52, 62, 64, 65, 67], "continu": 5, "real": [5, 54], "analysi": [5, 54], "tao": [5, 52], "2006": [5, 52], "document": 5, "properli": 5, "all": [5, 46, 48], "infer": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 33, 35, 39, 42, 43, 44, 45, 48, 49, 50, 55, 56, 57, 59, 65], "rule": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 42, 43, 44, 45, 48, 49, 50, 55, 56, 57, 59, 65], "naiv": 5, "set": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 32, 42, 46, 48, 49, 65], "proposit": [5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 44, 46, 48, 65], "logic": [5, 9, 16, 20, 35], "fundament": 5, "geometri": 5, "meta": [5, 33, 48], "provid": [5, 35, 43, 44, 45, 55], "simpl": [5, 34, 46, 49, 59], "understand": 5, "error": 5, "inform": [5, 48], "messag": 5, "when": [5, 48, 59], "invalid": 5, "function": [5, 36, 42, 48, 59, 60, 64], "support": [5, 8, 36], "import": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "natur": [5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "text": [5, 41, 42], "ascii": 5, "unicod": [5, 48], "latex": 5, "two": [5, 28, 46], "column": 5, "pdf": [5, 41], "export": [5, 48], "json": 5, "xml": 5, "csv": 5, "need": 6, "contact": 6, "u": [6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 32, 34, 38, 42, 46, 48, 57, 59, 65], "contribut": [6, 8], "167": [], "do": [6, 48], "best": 6, "effort": 6, "titl": [8, 30, 48], "about": [8, 38, 39], "absorptiondeclar": [9, 56, 58, 65], "class": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 42, 43, 44, 45, 46, 48, 49, 50, 64, 65], "absorptioninclus": [9, 55, 58, 65], "sampl": [9, 55, 56, 64], "well": [9, 16, 17, 18, 19, 20, 22, 23, 32, 34, 35, 42, 46, 50, 59], "known": [9, 16, 17, 18, 19, 20, 22, 23, 32, 34, 35, 42, 46, 50, 59], "valid": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 35, 42, 48, 50, 56, 65], "left": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50, 59], "p": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 35, 42, 43, 44, 45, 50, 55, 56, 65], "impli": [9, 11, 12, 13, 14, 15, 26, 35, 42, 56, 65], "q": [9, 11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 28, 35, 42, 50, 55, 56, 65], "right": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50], "vdash": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 35, 42, 43, 44, 45, 50], "land": [9, 14, 15, 16, 26, 35, 42], "where": [9, 11, 12, 13, 22, 23, 42, 43, 44, 45, 49, 50, 59], "formula": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 33, 35, 42, 44, 46, 48, 49, 50, 55, 56, 59, 65], "statement": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 48, 50, 55, 56, 59, 65], "straightforward": [9, 11, 12, 13, 14, 15, 26, 27, 28, 29, 37, 38, 39], "languag": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 37, 38, 39, 44, 48, 65], "follow": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 36, 46, 65], "both": [9, 16, 21, 28, 29, 31], "absorption_": 9, "2": [11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 26, 27, 29, 30, 31, 33, 42, 46, 54, 65], "iff": [11, 12, 13], "true": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 44, 46, 48, 55, 59, 65], "onli": [11, 12, 13], "simplest": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 60, 65], "wai": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 60, 65], "access": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "via": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "inference_rul": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 59, 65], "abridg": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "properti": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 32, 34, 42, 48, 59, 65], "elabor": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 42, 43, 44, 45, 49, 50, 55, 56, 59, 60, 65], "sequenc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 39, 49, 50, 55, 56, 60, 65], "pu": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 60, 65], "create_univers": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "t": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 49, 50, 55, 56, 59, 65], "biconditional_elimination_1": 11, "infer_stat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 50, 56, 65], "p_iff_q": [11, 12, 13, 65], "wa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "yet": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "declar": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 37, 39, 42, 49, 55, 57, 59, 60, 65], "discours": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 35, 38, 39, 42, 55, 59, 60, 65], "automat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 59, 65], "call": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 36, 43, 48, 60, 65], "method": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 55, 59, 65], "core": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 42, 43, 44, 45, 46, 48, 50, 55, 56, 57, 59, 60, 65], "biconditionalelimination1inclus": 11, "echo": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 46, 48, 50, 55, 56, 59, 60, 65], "none": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 55, 56, 59, 60, 65], "nameset": [11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 56, 59, 65], "ref": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 56, 59, 65], "paragraph_head": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 56, 59, 65], "subtitl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 46, 48, 50, 56, 59, 65], "appli": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 35, 43, 44, 45, 50, 56, 65], "return": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 48, 50, 55, 56, 59, 65], "paramet": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 43, 44, 45, 46, 48, 50, 55, 56, 59, 65], "mandatori": [11, 12, 13, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 35, 44, 56, 65], "current": [11, 12, 13, 14, 15, 26, 27, 28, 29, 35, 42, 43, 44, 45, 48, 50, 55, 56, 65], "creat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 38, 42, 60, 65], "basic": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "object": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 33, 42, 48, 49, 59, 60, 65], "sake": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "exampl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 59, 65], "universeofdiscours": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 49, 58, 65], "o1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "o": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 35, 42, 43, 44, 45, 49, 50, 55, 59, 65], "o2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 42, 65], "o3": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 42, 65], "r1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 65], "r": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 49, 59, 65], "signal_proposit": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 42, 46, 65], "r2": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 65], "axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 42, 48, 49, 54, 59, 65], "declare_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 59, 65], "natural_languag": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 48, 59, 65], "dummi": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "demonstr": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "necessari": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 42, 65], "t1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "theory_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "include_axiom": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 48, 65], "phi1": [11, 12, 13, 14, 15, 16, 17, 18], "axiom_interpret": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "And": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 49, 65], "final": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 44, 49, 65], "proposition_of_interest": [11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "interest": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 42, 65], "\ud835\uddab\ud835\uddbe\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udcb0\u2083": 11, "\ud835\uddbb\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc62\ud835\udc5b\ud835\udc56\ud835\udc63\ud835\udc52\ud835\udc5f\ud835\udc60\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5c\ud835\udc53": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc51\ud835\udc56\ud835\udc60\ud835\udc50\ud835\udc5c\ud835\udc62\ud835\udc5f\ud835\udc60\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udcaf\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc61\u210e\ud835\udc52\ud835\udc5c\ud835\udc5f\ud835\udc66": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc52\ud835\udc59\ud835\udc4e\ud835\udc4f\ud835\udc5c\ud835\udc5f\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc60\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddd4\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc34\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc9c\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude0b\ud835\ude36\ud835\ude2e\ud835\ude2e\ud835\ude3a": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude22\ud835\ude39\ud835\ude2a\ud835\ude30\ud835\ude2e": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\ude27\ud835\ude30\ud835\ude33": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\ude25\ud835\ude26\ud835\ude2e\ud835\ude30\ud835\ude2f\ud835\ude34\ud835\ude35\ud835\ude33\ud835\ude22\ud835\ude35\ud835\ude2a\ud835\ude30\ud835\ude2f": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\ude31\ud835\ude36\ud835\ude33\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26\ud835\ude34": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 28, 29, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddbc\ud835\uddc5\ud835\uddce\ud835\uddbd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udddc\ud835\uddfb\ud835\uddf3\ud835\uddf2\ud835\uddff\ud835\uddf2\ud835\uddfb\ud835\uddf0\ud835\uddf2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddff\ud835\ude02\ud835\uddf9\ud835\uddf2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc56\ud835\udc5b\ud835\udc53\ud835\udc52\ud835\udc5f\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc5f\ud835\udc62\ud835\udc59\ud835\udc52": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddba\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udc9c": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddaf": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddba\ud835\uddc7\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcc\ud835\uddc2\ud835\uddbd\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc43\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5f\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 27, 65], "\ud835\udc5c\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc5c\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 42, 65], "\ud835\udc5f\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 65], "\ud835\udc5c\u2083": [11, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 42, 65], "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbb\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddea\ud835\uddee\ud835\uddff\ud835\uddfb\ud835\uddf6\ud835\uddfb\ud835\uddf4": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udda1\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddc0\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddce\ud835\uddc7\ud835\uddbc\ud835\uddcd\ud835\uddc2\ud835\uddc5\ud835\uddc2\ud835\uddc8\ud835\uddce\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddcc\ud835\uddcc\ud835\uddce\ud835\uddcb\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcc\ud835\uddd2\ud835\uddc7\ud835\uddcd\ud835\uddba\ud835\uddbc\ud835\uddcd\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddc5": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddcb\ud835\uddcb\ud835\uddbe\ud835\uddbc\ud835\uddcd\ud835\uddc7\ud835\uddbe\ud835\uddcc\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddbf": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddc8\ud835\uddcb\ud835\uddc2\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "\ud835\uddbb\ud835\uddce\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddc8\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc7\ud835\uddc8\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddbe\ud835\uddcb\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddc7\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcc\ud835\uddbe\ud835\uddc6\ud835\uddba\ud835\uddc7\ud835\uddcd\ud835\uddc2\ud835\uddbc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcf\ud835\uddbe\ud835\uddcb\ud835\uddc2\ud835\uddbf\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddce\ud835\uddcc\ud835\uddba\ud835\uddc0\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe\ud835\uddcc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc7\ud835\uddba\ud835\uddcd\ud835\uddce\ud835\uddcb\ud835\uddba\ud835\uddc5": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbc\ud835\uddcb\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddc5\ud835\uddc5\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbd\ud835\uddbe\ud835\uddc9\ud835\uddbe\ud835\uddc7\ud835\uddbd\ud835\uddbe\ud835\uddc7\ud835\uddcd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddcb\ud835\uddba\ud835\uddc7\ud835\uddcc\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc9\ud835\uddbe\ud835\uddcb\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddbe\ud835\uddbd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddc8\ud835\uddcb\ud835\uddd2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddba\ud835\uddce\ud835\uddcd\ud835\uddc1\ud835\uddc8\ud835\uddcb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc8\ud835\uddcb": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddc5\ud835\uddba\ud835\uddc7\ud835\uddc0\ud835\uddce\ud835\uddba\ud835\uddc0\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddcd\ud835\uddc8": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddbe": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\udc4f\ud835\udc56\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc51\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\ud835\udc4e\ud835\udc59": [11, 12, 13], "\ud835\udc52\ud835\udc59\ud835\udc56\ud835\udc5a\ud835\udc56\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [11, 12, 14, 15, 19], "\ud835\udc0f\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 26, 65], "\ud835\udc10\u2081": [11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 65], "\ud835\udc43\u2082": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26], "\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "let": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 38, 65], "u4": 11, "a1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "postul": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 49, 65], "interpret": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "defin": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 49, 65], "A": [7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 34, 35, 46, 49, 50, 55, 57, 59, 65], "consid": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 37, 38, 39, 48, 49, 65], "p1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "therefor": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "qed": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "warn": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "warning1": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "By": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "design": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 65], "assur": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "syntact": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 46, 48, 50, 55, 65], "correct": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "ani": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 46, 50, 65], "semant": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "verif": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 43, 48, 65], "content": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 33, 48, 51, 52, 59, 64, 65], "critic": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "depend": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 48, 65], "translat": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "author": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "q1": [11, 12, 13, 14, 15, 16, 17, 18, 22, 26, 65], "p2": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "form": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 31, 33, 46, 50, 55], "prop": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "biconditional_elimination_2": 12, "biconditionalelimination2inclus": 12, "\ud835\udcb0\u2085": 12, "u6": 12, "biconditional_introduct": 13, "biconditionalintroductioninclus": 13, "p_implies_q": [13, 26, 35, 42, 55, 56, 65], "q_implies_p": 13, "phi2": [13, 16], "biconditional_infer": 13, "bi": 13, "\ud835\udcb0\u2087": 13, "\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [13, 16, 17, 18, 20, 26, 27, 28, 29], "\ud835\udc43\u2083": [13, 16, 22, 26, 27, 28, 42], "u8": 13, "p3": [13, 16, 22, 26, 27, 28], "conjunction_elimination_1": 14, "p_and_q": [14, 15], "conjunctionelimination1inclus": 14, "\ud835\udcb0\u2089": 14, "\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [14, 15, 16, 26], "u10": 14, "conjunction_elimination_2": 15, "conjunctionelimination2inclus": 15, "\ud835\udcb0\u2081\u2081": 15, "u12": 15, "argument": [16, 20, 50], "type": [16, 20, 35, 43, 44, 45, 50, 55, 59], "deal": [16, 20], "predic": [16, 20], "particular": [16, 20], "deduct": [16, 20], "can": [16, 20, 21, 31], "conclud": [16, 20], "\u03d5": [16, 20], "\u03c8": 16, "compound": 16, "conjunction_introduct": [16, 26, 42], "conjunctionintroductioninclus": 16, "result": [16, 17, 18, 19, 20, 43, 44, 45, 50], "ariti": [16, 17, 18, 19, 20, 22, 23, 26, 42, 46], "\ud835\udcb0\u2081\u2083": 16, "u14": 16, "lor": [17, 18], "addit": [17, 18], "allow": [17, 18, 21, 30, 31, 35, 43, 44, 45, 50], "one": [17, 18, 21, 31], "either": [17, 18, 46], "p8": [17, 18], "disjunction_introduction_1": 17, "disjunctionintroduction1inclus": 17, "\ud835\udcb0\u2081\u2085": 17, "\ud835\udc51\ud835\udc56\ud835\udc60\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [17, 18], "\ud835\uddc0\ud835\uddc2\ud835\uddcf\ud835\uddbe\ud835\uddc7": [17, 18], "u16": 17, "given": [17, 18, 48, 59], "disjunction_introduction_2": 18, "disjunctionintroduction2inclus": 18, "\ud835\udcb0\u2081\u2087": 18, "u18": 18, "lnot": [19, 20, 27, 42], "double_negation_elimin": 19, "doublenegationintroductioninclus": [19, 20], "inclus": [19, 20, 33, 35, 37, 38, 48, 49, 56, 65], "target": [19, 20], "not_not_p": 19, "\ud835\udcb0\u2081\u2089": 19, "\ud835\udc51\ud835\udc5c\ud835\udc62\ud835\udc4f\ud835\udc59\ud835\udc52": [19, 20, 26], "\ud835\udc5b\ud835\udc52\ud835\udc54\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [19, 20, 26], "u20": 19, "As": 20, "express": [20, 48], "double_negation_introduct": [20, 26], "\ud835\udcb0\u2082\u2081": 20, "u22": 20, "deriv": [21, 28, 29, 30, 31], "premis": [21, 30, 31], "bicondit": [21, 30, 31, 33], "conjunct": [21, 26, 30, 31, 33], "doubl": [21, 26, 30, 31, 33], "negat": [21, 26, 27, 30, 31, 33, 42], "each": [21, 31], "tell": [21, 31], "For": [21, 31, 49], "instanc": [21, 31, 59], "show": [21, 28, 29, 31], "term": [21, 23, 28, 30, 31, 33, 46], "disjunct": [21, 30, 31, 33], "6": [21, 31], "7": [21, 31], "bruce": [21, 31], "porter": [21, 31], "vladimir": [21, 31], "lifschitz": [21, 31], "frank": [21, 31], "van": [21, 31], "harmelen": [21, 31], "editor": [21, 31], "handbook": [21, 31], "knowledg": [21, 31], "represent": [21, 31, 46, 48], "foundat": [21, 31], "artifici": [21, 31], "intellig": [21, 31], "elsevi": [21, 31], "amsterdam": [21, 31], "boston": [21, 31], "1st": [21, 31], "ed": [21, 31, 46], "2008": [21, 31], "commut": [22, 30, 33], "x": [22, 23, 26, 28, 38, 42, 59], "y": [22, 23, 26, 28, 38, 42, 59], "ident": 22, "except": 22, "everi": 22, "occurr": 22, "terms_substitut": 22, "equaltermssubstitutioninclus": 22, "x_equal_i": [22, 23], "arg": [22, 23, 35, 43, 45, 50], "proposition_x_equal_i": 22, "f": [22, 26, 42, 59], "dummy_proposit": 22, "et": 22, "\ud835\udcb0\u2082\u2083": 22, "\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59": 22, "\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60": 22, "\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": [22, 26], "\ud835\udc31\u2081": [22, 23, 26, 42], "\ud835\udc32\u2081": [22, 23, 26, 42], "u24": 22, "x1": [22, 23, 26], "y1": [22, 23, 26], "substitut": [23, 26, 30, 33], "equality_commut": 23, "equalitycommutativityinclus": 23, "\ud835\udcb0\u2082\u2085": 23, "\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66": 23, "\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66": 23, "u26": 23, "special": [26, 34, 35, 43, 44, 45, 46, 55], "branch": 26, "out": 26, "child": 26, "parent": [26, 43, 44, 45, 48], "new": [26, 48, 59, 60], "note": [26, 59], "part": 26, "It": [26, 32, 46], "its": [26, 27, 28, 29, 37, 38, 39, 41, 46, 48, 49, 59], "predecessor": 26, "successor": 26, "pose": [26, 42, 44, 48], "That": 26, "what": 26, "assum": [26, 42, 43, 44, 45], "someth": 26, "pose_hypothesi": [26, 42, 48], "h": [26, 42, 43, 44, 45], "hypothesis_formula": [26, 42, 48], "h_theori": 26, "child_theori": [26, 42], "h_statement": 26, "child_stat": [26, 42], "constitut": [26, 39], "inconsistencyintroduction1inclus": [26, 27], "not_p": [26, 27, 28, 29, 42], "inconsistent_theori": [26, 27, 28, 29, 42], "inconsist": [26, 30, 33, 42, 44, 48], "condit": [26, 27, 28, 29, 48], "prove": [26, 27, 28, 29, 35, 42, 44, 48, 56, 65], "create_universe_of_discours": [26, 42, 61], "establish": [26, 42, 46], "ground": [26, 42], "symbol": [26, 32, 42, 46, 48, 59], "v": [26, 42, 59], "z": [26, 42], "implic": [26, 35, 42, 44, 56, 65], "stabil": [26, 27, 28, 29, 42, 48, 59], "take_not": [26, 48, 59], "until": [26, 48], "thei": [26, 49, 55], "come": 26, "couldn": 26, "otherwis": [26, 48, 55], "variable_substitut": [26, 42], "phi": [26, 42, 49, 50, 59], "modus_ponen": [26, 42], "without": 26, "could": [26, 27, 28, 29], "\ud835\udcb0\u2082\u2087": 26, "\ud835\ude35\ud835\ude30": 26, "\ud835\ude26\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude23\ud835\ude2d\ud835\ude2a\ud835\ude34\ud835\ude29": 26, "\ud835\ude34\ud835\ude30\ud835\ude2e\ud835\ude26": 26, "\ud835\ude28\ud835\ude33\ud835\ude30\ud835\ude36\ud835\ude2f\ud835\ude25": 26, "\ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude2a\ud835\ude35\ud835\ude2a\ud835\ude30\ud835\ude2f\ud835\ude34": 26, "\ud835\udc53\u2081": [26, 42], "\ud835\udc33\u2081": [26, 42], "\ud835\udde1\ud835\uddfc\ud835\ude01\ud835\uddf2": 26, "\ud835\uddb4\ud835\uddc7\ud835\uddcd\ud835\uddc2\ud835\uddc5": 26, "\ud835\uddcd\ud835\uddc1\ud835\uddc2\ud835\uddcc": 26, "\ud835\uddc9\ud835\uddc8\ud835\uddc2\ud835\uddc7\ud835\uddcd": 26, "\ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\ud835\uddcc": 26, "\ud835\uddba\ud835\uddcb\ud835\uddbe": 26, "\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddbd\ud835\uddbe\ud835\uddbc\ud835\uddbe\ud835\uddcc\ud835\uddcc\ud835\uddc8\ud835\uddcb\ud835\uddcc": 26, "\ud835\uddc1\ud835\uddd2\ud835\uddc9\ud835\uddc8\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddcc": [26, 42], "\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddd2": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddc7\ud835\uddcd\ud835\uddba\ud835\uddc2\ud835\uddc7\ud835\uddbe\ud835\uddbd": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddc6\ud835\uddc2\ud835\uddc7\ud835\uddc0": 26, "\ud835\uddc1": 26, "\u210b\u2081": [26, 42], "\ud835\udc34\u2082": 26, "\ud835\udc9c\u2082": 26, "\ud835\ude09\ud835\ude3a": 26, "\ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34": 26, "\ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26": 26, "\ud835\ude2a\ud835\ude34": 26, "\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26": 26, "\u2082": [26, 42], "\ud835\udddb\ud835\ude06\ud835\uddfd\ud835\uddfc\ud835\ude01\ud835\uddf5\ud835\uddf2\ud835\ude00\ud835\uddf6\ud835\ude00": [26, 42], "\ud835\udc3b\u2081": [26, 42], "\ud835\uddb3\ud835\uddc1\ud835\uddc2\ud835\uddcc": [26, 42], "\ud835\uddbe\ud835\uddc5\ud835\uddba\ud835\uddbb\ud835\uddc8\ud835\uddcb\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd": [26, 42], "\ud835\udc43\u2084": [26, 42], "\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52": 26, "\ud835\udef7": 26, "\ud835\udc43\u2085": [26, 42], "\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60": 26, "\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60": 26, "\ud835\udc0f\u2082": 26, "\ud835\udc10\u2082": 26, "\ud835\udc43\u2086": [26, 42], "\ud835\uddad\ud835\uddc8\ud835\uddcd\ud835\uddbe": 26, "\ud835\uddd0\ud835\uddc2\ud835\uddcd\ud835\uddc1\ud835\uddc8\ud835\uddce\ud835\uddcd": 26, "\ud835\uddbf": 26, "\ud835\uddc8\ud835\udfe3": 26, "\ud835\uddc8\ud835\udfe4": 26, "\ud835\uddd0\ud835\uddbe": 26, "\ud835\uddbc\ud835\uddc8\ud835\uddce\ud835\uddc5\ud835\uddbd": 26, "\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb": 26, "\ud835\uddc8\ud835\udfe5": 26, "\u2083": 26, "\ud835\udda5\ud835\uddcb\ud835\uddc8\ud835\uddc6": 26, "\ud835\uddcc\ud835\uddce\ud835\uddbc\ud835\uddbc\ud835\uddbe\ud835\uddcc\ud835\uddcc\ud835\uddc8\ud835\uddcb\ud835\uddcc": 26, "\ud835\udc0f\u2083": 26, "\ud835\udc43\u2087": [26, 42], "u28": 26, "f1": 26, "z1": 26, "note1": 26, "h1": 26, "a2": 26, "warning2": 26, "p4": 26, "variabl": [26, 33, 38, 59], "p5": 26, "modu": [26, 30, 33, 44], "ponen": [26, 30, 33, 44], "q2": 26, "p6": 26, "note2": 26, "note3": 26, "p7": 26, "3": [27, 28, 30, 33, 46], "neg": [27, 42, 44], "inc": [27, 28, 29, 42, 43, 44, 45], "mathcal": [27, 28, 29, 42, 43, 44, 45, 49], "inconsistency_introduction_1": [27, 42], "distinct": [27, 28, 29, 37, 38, 39, 48, 51, 64], "t2": [27, 28, 29], "becaus": [27, 28, 29, 59], "own": [27, 28, 29], "\ud835\udcb0\u2082\u2089": 27, "\ud835\udc56\ud835\udc5b\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc60\ud835\udc56\ud835\udc60\ud835\udc61\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc66": [27, 28, 29], "\ud835\udc77": [27, 28, 29, 42], "\ud835\udc3c\ud835\udc5b\ud835\udc50": [27, 28, 29, 42], "\ud835\udce3": 27, "\ud835\udcaf\u2082": [27, 28, 29], "\ud835\uddd0\ud835\uddc1\ud835\uddc2\ud835\uddbc\ud835\uddc1": [27, 29], "u30": 27, "which": [27, 28, 29, 30, 38, 39], "neq": [28, 29], "equal": [28, 29, 30, 33], "inequ": 28, "appeal": [28, 29], "contentu": [28, 29, 48], "consider": [28, 29], "complet": [28, 29], "unproblemat": [28, 29], "formal": [28, 29, 38], "question": [28, 29], "never": [28, 29], "possibl": [28, 29, 38, 39, 43, 48], "\ud835\udc4e": [28, 29, 59], "altern": [28, 29], "\ud835\udc4f": [28, 29], "5": [28, 29], "inconsistency_introduction_2": 28, "inconsistencyintroduction2inclus": 28, "x_eq_i": 28, "x_neq_i": 28, "p_eq_q": 28, "eq": 28, "p_neq_q": 28, "\ud835\udcb0\u2083\u2081": 28, "\ud835\udc78": 28, "\ud835\udcaf": [28, 29], "u32": 28, "itself": 29, "inconsistency_introduction_3": 29, "inconsistencyintroduction3inclus": 29, "p_neq_p": 29, "\ud835\udcb0\u2083\u2083": 29, "\ud835\udda8\ud835\uddc7\ud835\uddbc": 29, "u34": 29, "transform": 30, "absorpt": [30, 33, 55, 56, 66], "math": [7, 30, 46, 55, 56, 65], "concept": [30, 32, 51, 55, 56, 65], "contradict": [30, 33, 44], "refut": [30, 33], "encyclopedia": 30, "url": [30, 41], "encyclopediaofmath": 30, "index": [8, 30, 46, 48, 59], "php": 30, "derivation_rul": 30, "oldid": 30, "33737": 30, "list_of_rules_of_infer": 30, "binari": 32, "relat": [32, 33, 34, 49, 51, 59, 64], "denot": 32, "belong": 32, "arbitrari": 32, "collect": [32, 49, 57, 59], "choic": 32, "distinguish": [32, 37], "loos": 32, "membership": 32, "relationdict": [32, 46, 59], "dictionari": [32, 34, 46, 48, 59], "expos": [32, 34, 42, 46, 59], "xxxxxxx": 32, "tabl": [33, 51, 52, 64], "refer": [33, 48, 51, 52, 59, 64], "kei": 33, "hypothesi": [33, 42, 43, 44, 45, 48], "notat": [33, 46], "creation": [33, 38, 39, 49, 60], "paragraph": [33, 50], "simpleobjctdict": [34, 46, 59], "objct": [34, 46, 48, 59], "todo": [34, 37, 43, 46], "move": [34, 46], "universe_of_discours": [35, 43, 44, 45, 46, 50, 55, 59], "__init__": [35, 43, 44, 45, 46, 48, 50, 57, 59], "compose_paragraph_proof": [35, 43, 44, 45, 50, 55], "should": [35, 38, 43, 44, 45, 55], "overridden": [35, 43, 44, 45, 55], "accur": [35, 38, 43, 44, 45, 55], "compos": [35, 43, 44, 45, 46, 48, 50, 55], "bool": [35, 43, 44, 45, 50, 55, 59], "infer_formula": [35, 43, 44, 45, 50, 55, 56], "verify_arg": [35, 43, 44, 45, 50, 55], "theoryelaborationsequ": [35, 59], "aka": [35, 42, 43, 44, 45, 49, 50], "fix": [36, 46], "post": 36, "pre": 36, "name": [37, 46, 48, 59, 60], "mean": [37, 38, 39, 46], "summon": 37, "footnote2": 38, "extend": [38, 39, 48], "make": [38, 39, 43, 48, 59], "speak": 38, "other": [38, 48], "whenev": 38, "newli": 38, "To": [38, 59], "even": 38, "accret": 38, "footnot": [38, 39, 49], "footnote1": 39, "element": 39, "present": 41, "singl": 41, "detail": 41, "step": 41, "justif": 41, "conclus": 41, "loui": 41, "astorino": 41, "2010": 41, "www": 41, "arlingtonschool": 41, "cm": 41, "lib": 41, "ny02215626": 41, "centric": 41, "domain": 41, "4295": 41, "proofs_1": 41, "visit": [41, 48], "2023": 41, "08": 41, "14": 41, "mathbf": [42, 43, 44, 45], "mathit": 42, "h_inconsist": 42, "proof_by_contradiction_1": 42, "not_p_hypothesi": 42, "inc_hypothesi": [42, 43, 44, 45], "packag": [42, 48], "initi": 42, "\ud835\udcb0\u2081": [42, 65], "\ud835\uddc9\ud835\uddba\ud835\uddbc\ud835\uddc4\ud835\uddba\ud835\uddc0\ud835\uddbe": 42, "\ud835\udc43\u2088": 42, "\ud835\udc43\u2089": 42, "\ud835\uddf5\ud835\ude06\ud835\uddfd": 42, "\ud835\udc5d\ud835\udc5f\ud835\udc5c\ud835\udc5c\ud835\udc53": 42, "\ud835\udc4f\ud835\udc66": 42, "\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc4e\ud835\udc51\ud835\udc56\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": 42, "\ud835\udcd7": 42, "\ud835\udc4e\ud835\udc60\ud835\udc60\ud835\udc62\ud835\udc5a\ud835\udc52": 42, "process": [42, 48], "finish": 42, "exit": 42, "code": [42, 59, 60, 64], "0": [42, 46, 48], "inferenceruleinclusiondict": 42, "repositori": 42, "complement": 42, "easili": 42, "recogn": 42, "found": [42, 48], "correspond": [42, 50], "proofbycontradiction1inclus": 42, "pbc": 42, "x_neq_y_hypothesi": 43, "tn": [43, 44, 45], "systemat": 43, "doubt": 43, "still": 43, "wrong": 43, "boldsymbol": 44, "textit": 44, "plain": 44, "p_hypothesi": 44, "p_eq_q_hypothesi": 45, "order": 46, "pair": 46, "equival": [46, 48, 49], "member": 46, "b": 46, "arb": 46, "fals": [46, 48, 55, 59], "repres": 46, "theoret": [46, 48], "assign": 46, "composit": 46, "\ud835\udf11": 46, "between": 46, "ha": 46, "signal": 46, "renam": 46, "catalog": 46, "handili": 46, "avail": [46, 59], "auto_index": [46, 48, 59], "formula_rep": 46, "signal_theoretical_morph": 46, "dashed_nam": [46, 48, 59], "acronym": [46, 48, 59], "abridged_nam": [46, 48, 59], "explicit_nam": [46, 48, 59], "compose_report": [46, 48], "kwarg": [46, 48, 50], "report": [46, 48], "describ": [46, 48], "dougla": 46, "down": 46, "3rd": 46, "barron": 46, "": [46, 48, 59], "guid": 46, "2009": 46, "isbn": 46, "13": 46, "978": 46, "7641": 46, "4139": 46, "librari": [46, 67], "congress": 46, "control": 46, "number": [46, 48], "2008931689": 46, "david": 46, "mcadam": 46, "word": 46, "second": 46, "life": 46, "stori": 46, "problem": 46, "llc": 46, "2014": 46, "extended_theori": [48, 59], "extended_theory_limit": [48, 59], "theoryelabor": 48, "model": [48, 59], "assure_interpretation_disclaim": 48, "after": 48, "first": [48, 59], "usag": 48, "compose_articl": 48, "justifi": 48, "statu": 48, "valu": 48, "undetermin": 48, "crossreference_axiom_inclus": 48, "dure": 48, "construct": 48, "cross": [48, 51, 59, 64], "alreadi": 48, "referenc": [48, 51, 64], "base": [48, 59], "crossreference_definition_endors": 48, "d": [48, 49, 59], "endors": 48, "crossreference_inference_rule_inclus": 48, "crossreference_stat": 48, "\ud835\udcae": 48, "shortcut": [48, 59], "elaborate_definit": 48, "export_article_to_fil": 48, "file_path": 48, "encod": 48, "textfil": 48, "root": 48, "limit": 48, "get_first_syntactically_equivalent_stat": 48, "include_definit": 48, "inconsistency_introduction_inference_rule_is_includ": 48, "inference_rule_inclus": 48, "iterate_statements_in_theory_chain": 48, "iter": 48, "through": 48, "sound": 48, "chain": 48, "filter": 48, "iterate_theoretical_objcts_refer": 48, "include_root": 48, "recurs": 48, "divers": 48, "confus": 48, "iterate_theory_chain": 48, "over": 48, "etc": 48, "whose": 48, "theoriz": 48, "possibli": [48, 49, 57, 59], "case": 48, "iterate_valid_propositions_in_theory_chain": 48, "open_sect": 48, "section_titl": 48, "section_numb": 48, "section_par": 48, "section": 48, "report_inconsistency_proof": 48, "inferredstat": 48, "take": [48, 59], "comment": [48, 59], "remark": [48, 59], "empti": [49, 57, 59], "o_1": 49, "o_2": 49, "ldot": 49, "o_n": 49, "o_i": 49, "organ": 49, "desir": 49, "mutual": 49, "exclus": 49, "necessarili": [49, 59], "exhaust": 49, "categori": 49, "tupl": 49, "c": 49, "_1": 49, "_2": 49, "_n": 49, "_i": 49, "lifecycl": 49, "must": 49, "ordinari": 49, "sens": 49, "n": [50, 59], "modifi": 50, "been": 50, "replac": 50, "overrid": 50, "comput": 50, "those": 50, "verifi": [50, 55], "compli": 50, "rational": [51, 64], "keep": [51, 64], "clearli": [51, 64], "implement": 52, "chapter": 54, "peano": 54, "compat": 55, "inferenceruledeclar": [58, 59], "cross_reference_axiom": 59, "axiomdeclar": 59, "cross_reference_definit": 59, "definit": [59, 65], "definitiondeclar": 59, "cross_reference_formula": 59, "cross_reference_inference_rul": 59, "ir": 59, "cross_reference_rel": 59, "cross_reference_simple_objct": 59, "simpleobjct": 59, "cross_reference_symbolic_objct": 59, "theoreticalobject": 59, "cross_reference_theori": 59, "declare_definit": 59, "declare_formula": 59, "lock_variable_scop": 59, "self": 59, "state": 59, "declare_free_vari": 59, "freevari": 59, "declare_theori": 59, "is_theory_foundation_system": 59, "elaborate_formula": 59, "get_symbol_max_index": 59, "highest": 59, "int": 59, "inferenceruledeclarationdict": 59, "unabridg": 59, "index_symbol": 59, "unindex": 59, "uniqu": 59, "integ": 59, "identifi": 59, "styledtext": 59, "simple_objct": 59, "directli": 59, "version": 59, "expect": 59, "yield": 59, "lock": 59, "scope": 59, "extens": 59, "expressli": 59, "instead": 59, "u1": 60, "insert": 60, "pip": 62, "download": 62, "prerequisit": 64, "instal": 64, "script": 65, "showcas": 65, "absorption_1": 65, "\ud835\udc4e\ud835\udc4f\ud835\udc60\ud835\udc5c\ud835\udc5f\ud835\udc5d\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b": 65, "\ud835\uddba\ud835\uddc9\ud835\uddc9\ud835\uddc5\ud835\uddc2\ud835\uddbc\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7": 65, "u2": 65, "imag": [], "_static": [], "logo": [], "full": [], "light": [], "svg": [], "height": [], "50": [], "width": [], "alt": [], "assist": [7, 8], "live": 67, "_": []}, "objects": {"core": [[55, 0, 1, "", "AbsorptionDeclaration"], [56, 0, 1, "", "AbsorptionInclusion"], [57, 0, 1, "", "InferenceRuleDeclarationDict"], [42, 0, 1, "", "InferenceRuleInclusionDict"], [35, 0, 1, "", "ModusPonensDeclaration"], [35, 0, 1, "", "ModusPonensInclusion"], [43, 0, 1, "", "ProofByContradiction2Declaration"], [43, 0, 1, "", "ProofByContradiction2Inclusion"], [44, 0, 1, "", "ProofByRefutation1Declaration"], [44, 0, 1, "", "ProofByRefutation1Inclusion"], [45, 0, 1, "", "ProofByRefutation2Declaration"], [45, 0, 1, "", "ProofByRefutation2Inclusion"], [46, 0, 1, "", "Relation"], [32, 0, 1, "", "RelationDict"], [46, 0, 1, "", "SimpleObjctDict"], [48, 0, 1, "", "TheoryElaborationSequence"], [59, 0, 1, "", "UniverseOfDiscourse"], [50, 0, 1, "", "VariableSubstitutionDeclaration"], [50, 0, 1, "", "VariableSubstitutionInclusion"], [60, 3, 1, "", "create_universe_of_discourse"]], "core.AbsorptionDeclaration": [[55, 1, 1, "", "compose_paragraph_proof"], [55, 1, 1, "", "infer_formula"], [55, 1, 1, "", "verify_args"]], "core.AbsorptionInclusion": [[56, 1, 1, "", "infer_formula"], [56, 1, 1, "", "infer_statement"]], "core.InferenceRuleDeclarationDict": [[57, 1, 1, "", "__init__"]], "core.InferenceRuleInclusionDict": [[42, 2, 1, "", "proof_by_contradiction_1"]], "core.ModusPonensDeclaration": [[35, 1, 1, "", "__init__"], [35, 1, 1, "", "compose_paragraph_proof"], [35, 1, 1, "", "infer_formula"], [35, 1, 1, "", "verify_args"]], "core.ModusPonensInclusion": [[35, 1, 1, "", "__init__"], [35, 1, 1, "", "infer_formula"], [35, 1, 1, "", "infer_statement"]], "core.ProofByContradiction2Declaration": [[43, 1, 1, "", "__init__"], [43, 1, 1, "", "compose_paragraph_proof"], [43, 1, 1, "", "infer_formula"], [43, 1, 1, "", "verify_args"]], "core.ProofByContradiction2Inclusion": [[43, 1, 1, "", "__init__"], [43, 1, 1, "", "infer_formula"], [43, 1, 1, "", "infer_statement"]], "core.ProofByRefutation1Declaration": [[44, 1, 1, "", "__init__"], [44, 1, 1, "", "compose_paragraph_proof"], [44, 1, 1, "", "infer_formula"], [44, 1, 1, "", "verify_args"]], "core.ProofByRefutation1Inclusion": [[44, 1, 1, "", "__init__"], [44, 1, 1, "", "infer_formula"], [44, 1, 1, "", "infer_statement"]], "core.ProofByRefutation2Declaration": [[45, 1, 1, "", "__init__"], [45, 1, 1, "", "compose_paragraph_proof"], [45, 1, 1, "", "infer_formula"], [45, 1, 1, "", "verify_args"]], "core.ProofByRefutation2Inclusion": [[45, 1, 1, "", "__init__"], [45, 1, 1, "", "infer_formula"], [45, 1, 1, "", "infer_statement"]], "core.Relation": [[46, 1, 1, "", "__init__"], [46, 1, 1, "", "compose_report"]], "core.RelationDict": [[32, 2, 1, "", "is_a"]], "core.SimpleObjctDict": [[46, 2, 1, "", "relation"]], "core.TheoryElaborationSequence": [[48, 1, 1, "", "__init__"], [48, 1, 1, "", "assure_interpretation_disclaimer"], [48, 1, 1, "", "compose_article"], [48, 1, 1, "", "compose_report"], [48, 2, 1, "", "consistency"], [48, 1, 1, "", "crossreference_axiom_inclusion"], [48, 1, 1, "", "crossreference_definition_endorsement"], [48, 1, 1, "", "crossreference_inference_rule_inclusion"], [48, 1, 1, "", "crossreference_statement"], [48, 1, 1, "", "d"], [48, 1, 1, "", "export_article_to_file"], [48, 2, 1, "", "extended_theory"], [48, 2, 1, "", "extended_theory_limit"], [48, 1, 1, "", "get_first_syntactically_equivalent_statement"], [48, 2, 1, "", "i"], [48, 1, 1, "", "include_axiom"], [48, 1, 1, "", "include_definition"], [48, 2, 1, "", "inconsistency_introduction_inference_rule_is_included"], [48, 2, 1, "", "inference_rule_inclusions"], [48, 1, 1, "", "iterate_statements_in_theory_chain"], [48, 1, 1, "", "iterate_theoretical_objcts_references"], [48, 1, 1, "", "iterate_theory_chain"], [48, 1, 1, "", "iterate_valid_propositions_in_theory_chain"], [48, 1, 1, "", "open_section"], [48, 1, 1, "", "pose_hypothesis"], [48, 1, 1, "", "report_inconsistency_proof"], [48, 2, 1, "", "stabilized"], [48, 1, 1, "", "take_note"]], "core.UniverseOfDiscourse": [[59, 1, 1, "", "__init__"], [59, 1, 1, "", "cross_reference_axiom"], [59, 1, 1, "", "cross_reference_definition"], [59, 1, 1, "", "cross_reference_formula"], [59, 1, 1, "", "cross_reference_inference_rule"], [59, 1, 1, "", "cross_reference_relation"], [59, 1, 1, "", "cross_reference_simple_objct"], [59, 1, 1, "", "cross_reference_symbolic_objct"], [59, 1, 1, "", "cross_reference_theory"], [59, 1, 1, "", "declare_axiom"], [59, 1, 1, "", "declare_definition"], [59, 1, 1, "", "declare_formula"], [59, 1, 1, "", "declare_free_variable"], [59, 1, 1, "", "declare_theory"], [59, 1, 1, "", "f"], [59, 1, 1, "", "get_symbol_max_index"], [59, 2, 1, "", "i"], [59, 1, 1, "", "index_symbol"], [59, 2, 1, "", "inference_rules"], [59, 2, 1, "", "o"], [59, 2, 1, "", "r"], [59, 2, 1, "", "relations"], [59, 2, 1, "", "simple_objcts"], [59, 1, 1, "", "t"], [59, 1, 1, "", "take_note"], [59, 1, 1, "", "v"]], "core.VariableSubstitutionDeclaration": [[50, 1, 1, "", "__init__"], [50, 1, 1, "", "compose_paragraph_proof"], [50, 1, 1, "", "infer_formula"], [50, 1, 1, "", "verify_args"]], "core.VariableSubstitutionInclusion": [[50, 1, 1, "", "__init__"], [50, 1, 1, "", "infer_formula"], [50, 1, 1, "", "infer_statement"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "function", "Python function"]}, "titleterms": {"index": 0, "back": [0, 8], "matter": [0, 8], "bibliographi": [1, 9, 21, 30, 31, 32, 34, 35, 36, 41, 42, 43, 44, 45, 46, 48, 50], "about": 2, "punctili": [2, 3, 4, 7, 8, 30, 46], "so": 2, "why": 2, "develop": [2, 5], "yet": 2, "anoth": 2, "math": [2, 5, 8, 9, 33, 51, 52], "proof": [2, 41, 42, 43, 44, 45], "assist": 2, "contribut": 3, "The": [4, 53], "project": 4, "roadmap": 5, "formal": 5, "theori": [5, 48, 52], "human": 5, "friendli": 5, "support": [6, 30], "front": 8, "python": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 35, 42, 43, 44, 45, 46, 48, 49, 50, 55, 56, 57, 58, 59, 61, 64, 65, 66], "absorpt": [9, 65], "concept": [9, 33], "definit": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50], "axiom": [10, 53], "bicondit": [11, 12, 13], "elimin": [11, 12, 14, 15, 19, 21], "1": [11, 14, 17, 27, 42, 44, 53], "quot": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31], "implement": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 32, 35, 42, 43, 44, 45, 46, 48, 49, 50], "sampl": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65, 66], "usag": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 42, 65], "sourc": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65, 67], "code": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65, 67], "unicod": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "output": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "plaintext": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 65], "2": [12, 15, 18, 28, 43, 45, 53], "introduct": [13, 16, 17, 18, 20, 21, 27, 28, 29, 31], "conjunct": [14, 15, 16], "disjunct": [17, 18], "doubl": [19, 20], "negat": [19, 20], "rule": [21, 30, 31], "list": [21, 30, 31, 34, 36], "well": [21, 31], "known": [21, 31], "equal": [22, 23], "term": 22, "substitut": [22, 50], "commut": 23, "formula": [24, 25], "statement": [25, 47], "hypothesi": 26, "inconsist": [27, 28, 29], "3": 29, "infer": 30, "synonym": 30, "nativ": 30, "see": [30, 31], "also": [30, 31], "i": 32, "is_a": 32, "meta": [34, 46], "object": [34, 37, 38, 39, 40, 46], "modu": 35, "ponen": 35, "modusponensdeclar": 35, "modusponensinclus": 35, "notat": 36, "form": 36, "creation": 37, "declar": 38, "inclus": 39, "paragraph": 41, "style": 41, "contradict": [42, 43], "document": 42, "proofbycontradiction2declar": 43, "proofbycontradiction2inclus": 43, "refut": [44, 45], "proofbyrefutation1declar": 44, "proofbyrefutation1inclus": 44, "proofbyrefutation2declar": 45, "proofbyrefutation2inclus": 45, "relat": 46, "kei": 46, "properti": 46, "data": 46, "model": 46, "elabor": 48, "sequenc": 48, "theoryelaborationsequ": 48, "note": 48, "univers": 49, "discours": 49, "variabl": 50, "variablesubstitutiondeclar": 50, "variablesubstitutioninclus": 50, "tao": [53, 54], "2006": [53, 54], "real": 53, "analysi": 53, "chapter": 53, "peano": 53, "absorptiondeclar": 55, "class": [55, 56, 57, 58, 59], "absorptioninclus": 56, "inferenceruledeclarationdict": 57, "universeofdiscours": 59, "create_universe_of_discours": 60, "function": 61, "instal": 62, "prerequisit": 63, "repositori": 67, "tabl": 8, "content": 8}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinxcontrib.bibtex": 9, "sphinx": 58}, "alltitles": {"Index": [[0, "index"]], "Back matter": [[0, null], [8, null]], "Bibliography": [[1, "id1"], [9, "bibliography"], [21, "bibliography"], [30, "bibliography"], [31, "bibliography"], [36, "bibliography"], [41, "bibliography"], [32, "bibliography"], [34, "bibliography"], [35, "bibliography"], [42, "bibliography"], [43, "bibliography"], [44, "bibliography"], [45, "bibliography"], [46, "bibliography"], [48, "bibliography"], [50, "bibliography"]], "The punctilious project": [[4, "the-punctilious-project"]], "Roadmap": [[5, "roadmap"]], "Formalization of Math theories": [[5, "formalization-of-math-theories"]], "Human-friendliness": [[5, "human-friendliness"]], "Developer-friendliness": [[5, "developer-friendliness"]], "absorption (math concept)": [[9, "absorption"]], "Definition": [[9, "definition"], [21, "definition"], [30, "definition"], [31, "definition"], [36, "definition"], [37, "definition"], [38, "definition"], [39, "definition"], [41, "definition"], [49, "definition"], [32, "definition"], [34, "definition"], [35, "definition"], [42, "definition"], [43, "definition"], [44, "definition"], [45, "definition"], [46, "definition"], [48, "definition"], [50, "definition"], [11, "definition"], [12, "definition"], [13, "definition"], [14, "definition"], [15, "definition"], [16, "definition"], [17, "definition"], [18, "definition"], [19, "definition"], [20, "definition"], [22, "definition"], [23, "definition"], [26, "definition"], [27, "definition"], [28, "definition"], [29, "definition"]], "axiom": [[10, "axiom"]], "Quotes": [[21, "quotes"], [31, "quotes"], [11, "quotes"], [12, "quotes"], [13, "quotes"], [14, "quotes"], [15, "quotes"], [16, "quotes"], [17, "quotes"], [18, "quotes"], [19, "quotes"], [20, "quotes"], [22, "quotes"], [23, "quotes"], [26, "quotes"], [27, "quotes"], [28, "quotes"], [29, "quotes"]], "elimination-rule": [[21, "elimination-rule"]], "List of well-known introduction-rules": [[21, "list-of-well-known-introduction-rules"], [31, "list-of-well-known-introduction-rules"]], "formula": [[24, "formula"]], "formula-statement": [[25, "formula-statement"]], "inference-rule": [[30, "inference-rules"]], "Synonyms": [[30, "synonyms"]], "List of inference-rules natively supported by punctilious": [[30, "list-of-inference-rules-natively-supported-by-punctilious"]], "See also": [[30, "see-also"], [31, "see-also"]], "introduction-rule": [[31, "introduction-rule"]], "Math concept": [[33, "math-concept"]], "Concept": [[33, null]], "List": [[36, "list"], [34, "list"]], "notation-form": [[36, "notation-form"]], "object-creation": [[37, "object-creation"]], "object-declaration": [[38, "object-declaration"]], "object-inclusion": [[39, "object-inclusion"]], "object": [[40, "objects"]], "paragraph-proof (proof-style)": [[41, "paragraph-proof-proof-style"]], "statement": [[47, "theory-statement"]], "Python implementation": [[49, "python-implementation"], [32, "python-implementation"], [35, "python-implementation"], [42, "python-implementation"], [43, "python-implementation"], [44, "python-implementation"], [45, "python-implementation"], [46, "python-implementation"], [48, "python-implementation"], [50, "python-implementation"], [11, "python-implementation"], [12, "python-implementation"], [13, "python-implementation"], [14, "python-implementation"], [15, "python-implementation"], [16, "python-implementation"], [17, "python-implementation"], [18, "python-implementation"], [19, "python-implementation"], [20, "python-implementation"], [22, "python-implementation"], [23, "python-implementation"], [26, "python-implementation"], [27, "python-implementation"], [28, "python-implementation"], [29, "python-implementation"]], "universe-of-discourse": [[49, "universe-of-discourse"]], "Math": [[51, "math"], [51, null], [8, null]], "Math theory": [[52, "math-theory"]], "Theory": [[52, null]], "Tao 2006, Real Analysis, Chapter 2.1, The Peano axioms": [[53, "tao-2006-real-analysis-chapter-2-1-the-peano-axioms"]], "Tao 2006": [[54, "tao-2006"], [54, null]], "Python classes": [[58, "python-classes"]], "Class": [[58, null]], "Python functions": [[61, "python-functions"]], "Function": [[61, null]], "Installation": [[62, "installation"]], "Prerequisites": [[63, "prerequisites"]], "Python": [[64, "python"], [64, null], [8, null]], "Python samples": [[66, "python-samples"]], "Sample": [[66, null]], "is-a": [[32, "is-a"]], "is_a": [[32, "id2"]], "meta-object": [[34, "meta-object"], [46, "meta-object"]], "modus-ponens": [[35, "mp"]], "ModusPonensDeclaration": [[35, "modusponensdeclaration"]], "ModusPonensInclusion": [[35, "modusponensinclusion"]], "proof-by-contradiction-1": [[42, "proof-by-contradiction-1"]], "Sample usage": [[42, "sample-usage"]], "Documentation": [[42, "documentation"]], "proof-by-contradiction-2": [[43, "proof-by-contradiction-2"]], "ProofByContradiction2Declaration": [[43, "proofbycontradiction2declaration"]], "ProofByContradiction2Inclusion": [[43, "proofbycontradiction2inclusion"]], "proof-by-refutation-1": [[44, "proof-by-refutation-1"]], "ProofByRefutation1Declaration": [[44, "proofbyrefutation1declaration"]], "ProofByRefutation1Inclusion": [[44, "proofbyrefutation1inclusion"]], "proof-by-refutation-2": [[45, "proof-by-refutation-2"]], "ProofByRefutation2Declaration": [[45, "proofbyrefutation2declaration"]], "ProofByRefutation2Inclusion": [[45, "proofbyrefutation2inclusion"]], "relation": [[46, "relation"]], "Key properties": [[46, "key-properties"]], "Punctilious data model": [[46, "punctilious-data-model"]], "Relation": [[46, "id4"]], "theory-elaboration-sequence": [[48, "theory-elaboration-sequences"]], "TheoryElaborationSequence": [[48, "theoryelaborationsequence"]], "Note": [[48, "note"]], "variable-substitution": [[50, "variable-substitution"]], "VariableSubstitutionDeclaration": [[50, "variablesubstitutiondeclaration"]], "VariableSubstitutionInclusion": [[50, "variablesubstitutioninclusion"]], "AbsorptionDeclaration (python class)": [[55, "absorptiondeclaration-python-class"]], "AbsorptionInclusion (python class)": [[56, "absorptioninclusion-python-class"]], "InferenceRuleDeclarationDict (python class)": [[57, "inferenceruledeclarationdict-python-class"]], "UniverseOfDiscourse (python class)": [[59, "universeofdiscourse-python-class"]], "create_universe_of_discourse": [[60, "create-universe-of-discourse"]], "Punctilious": [[7, "punctilious"]], "punctilious": [[8, "punctilious"]], "Table of contents": [[8, "table-of-contents"]], "Front matter": [[8, null]], "About punctilious": [[2, "about-punctilious"]], "So why develop yet another math proof assistant?": [[2, "so-why-develop-yet-another-math-proof-assistant"]], "Source code repository": [[67, "source-code"]], "Support": [[6, "support"]], "Contributing to punctilious": [[3, "contributing-to-punctilious"]], "biconditional-elimination-1": [[11, "biconditional-elimination-1"]], "Python sample usage": [[11, "python-sample-usage"], [12, "python-sample-usage"], [13, "python-sample-usage"], [14, "python-sample-usage"], [15, "python-sample-usage"], [16, "python-sample-usage"], [17, "python-sample-usage"], [18, "python-sample-usage"], [19, "python-sample-usage"], [20, "python-sample-usage"], [22, "python-sample-usage"], [23, "python-sample-usage"], [26, "python-sample-usage"], [27, "python-sample-usage"], [28, "python-sample-usage"], [29, "python-sample-usage"]], "Source code": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "source-code"]], "Unicode output": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "unicode-output"]], "Plaintext output": [[11, null], [12, null], [13, null], [14, null], [15, null], [16, null], [17, null], [18, null], [19, null], [20, null], [22, null], [23, null], [26, null], [27, null], [28, null], [29, null], [65, "plaintext-output"]], "biconditional-elimination-2": [[12, "biconditional-elimination-2"]], "biconditional-introduction": [[13, "biconditional-introduction"]], "conjunction-elimination-1": [[14, "conjunction-elimination-1"]], "conjunction-elimination-2": [[15, "conjunction-elimination-2"]], "conjunction-introduction": [[16, "conjunction-introduction"]], "disjunction-introduction-1": [[17, "disjunction-introduction-1"]], "disjunction-introduction-2": [[18, "disjunction-introduction-2"]], "double-negation-elimination": [[19, "double-negation-elimination"]], "double-negation-introduction": [[20, "double-negation-introduction"]], "equal-terms-substitution": [[22, "equal-terms-substitution"]], "equality-commutativity": [[23, "equality-commutativity"]], "hypothesis": [[26, "hypothesis"]], "inconsistency-introduction-1": [[27, "inconsistency-introduction-1"]], "inconsistency-introduction-2": [[28, "inconsistency-introduction-2"]], "inconsistency-introduction-3": [[29, "inconsistency-introduction-3"]], "absorption (python sample)": [[65, "absorption-python-sample"]], "Usage": [[65, "usage"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/source/front_matter/contributing_front_matter.rst b/docs/source/front_matter/contributing_front_matter.rst index 6ca52bca..702f02ec 100644 --- a/docs/source/front_matter/contributing_front_matter.rst +++ b/docs/source/front_matter/contributing_front_matter.rst @@ -9,9 +9,9 @@ Everyone is warmly welcomed to contribute to *punctilious*. Here are some ideas on how to get started: -* If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread`_ and we will be most happy to help you from there. +* If you feel like a developer: whether you have a clear idea of the feature you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread `_ and we will be most happy to help you from there. -* If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread`_ and we will be most happy to help you from there. +* If you feel like a mathematician (student, amateur, or professional): whether you have a clear idea of the theory you would like to work on or not, just feel free to get in touch on our `GitHub Contribute discussion thread `_ and we will be most happy to help you from there. * If you are looking for ideas on how to contribute, you may wish to have a look at the :ref:`roadmap`, and the :ref:`project`. diff --git a/punctilious/punctilious.egg-info/PKG-INFO b/punctilious/punctilious.egg-info/PKG-INFO new file mode 100644 index 00000000..e8ed73d2 --- /dev/null +++ b/punctilious/punctilious.egg-info/PKG-INFO @@ -0,0 +1,97 @@ +Metadata-Version: 2.1 +Name: punctilious +Version: 1.0.0 +Summary: A human-friendly and developer-friendly math proof assistant +Home-page: https://github.com/daviddoret/punctilious +Author: David Doret +Author-email: David Doret +License: MIT License +Project-URL: Homepage, https://github.com/daviddoret/punctilious +Project-URL: Bug Tracker, https://github.com/daviddoret/punctilious/issues +Project-URL: Documentation, https://punctilious.readthedocs.io/en/latest/ +Project-URL: Repository, https://github.com/daviddoret/punctilious +Keywords: math,mathematics,proof,proof assistant,math proof assistant,formal system +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Education +Classifier: Intended Audience :: Science/Research +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: License :: OSI Approved :: MIT License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Topic :: Education +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Scientific/Engineering :: Mathematics +Requires-Python: >=3.11 +Description-Content-Type: text/markdown +License-File: LICENSE + +# punctilious + +
+ +

+ A human-friendly and developer-friendly math proof assistant library. +

+ +## About + +*Punctilious* is a *math proof assistant* open-source project developed in python. In straightforward language, it +intends to +facilitate the study and development of mathematical proofs by human beings. + +There exists multiple math proof assistants, including: + +* [Coq](https://coq.inria.fr/) +* [Isabelle](https://isabelle.in.tum.de/) +* [Lean](https://leanprover.github.io/) + +...and many more. The [proof assistant](https://en.wikipedia.org/wiki/Proof_assistant) page on Wikipedia contains a +general-purpose comparison of these. + +In contrast, *punctilious* is a ridiculous [Lilliputian](https://en.wikipedia.org/wiki/Lilliput_and_Blefuscu) with +neither the length, nor the breadth of these time-proven systems. + +### So why develop yet another math proof assistant? + +Besides being a fun and thrilling learning experience, the focus points of *punctilious* are: + +* Human-friendly and developer-friendly inputs (i.e.: write math as we learn it) +* Ease of use +* Human-friendly and developer-friendly outputs (i.e.: readable) + +*Punctilious* does not pay much attention to: + +* Performance (i.e. for large-scale proof applications) + +## Prerequisites + +Python 3.11 + +## Installation + +We are just in the process of publishing *punctilious* on PyPI. Please wait... + +## Getting started + +Many samples will be provided soon once we will have published our documentation on ReadTheDocs. Please wait... + +## Documentation + +*Punctilious* documentation lives on [ReadTheDocs](https://punctilious.readthedocs.io/en/latest/). + +## More links + +* [Roadmap](https://punctilious.readthedocs.io/en/latest/front_matter/roadmap_front_matter.html) +* [Contributing](https://punctilious.readthedocs.io/en/latest/front_matter/contributing_front_matter.html) +* [Project](https://punctilious.readthedocs.io/en/latest/front_matter/project_front_matter.html) +* [License](https://github.com/daviddoret/punctilious/blob/master/LICENSE) + +## Acknowledgments + +The list of dependencies is being compiled. Please wait... diff --git a/punctilious/punctilious.egg-info/SOURCES.txt b/punctilious/punctilious.egg-info/SOURCES.txt new file mode 100644 index 00000000..a054ea7b --- /dev/null +++ b/punctilious/punctilious.egg-info/SOURCES.txt @@ -0,0 +1,19 @@ +LICENSE +README.md +pyproject.toml +setup.cfg +setup.py +punctilious/__init__.py +punctilious/core.py +punctilious/graph.py +punctilious/locale_en_us.py +punctilious/plaintext.py +punctilious/random_data.py +punctilious/repm.py +punctilious/reserved_words.py +punctilious/unicode_utilities.py +punctilious/punctilious.egg-info/PKG-INFO +punctilious/punctilious.egg-info/SOURCES.txt +punctilious/punctilious.egg-info/dependency_links.txt +punctilious/punctilious.egg-info/top_level.txt +punctilious/punctilious.egg-info/zip-safe \ No newline at end of file diff --git a/punctilious/punctilious.egg-info/dependency_links.txt b/punctilious/punctilious.egg-info/dependency_links.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/punctilious/punctilious.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/punctilious/punctilious.egg-info/top_level.txt b/punctilious/punctilious.egg-info/top_level.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/punctilious/punctilious.egg-info/top_level.txt @@ -0,0 +1 @@ + diff --git a/punctilious/punctilious.egg-info/zip-safe b/punctilious/punctilious.egg-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/punctilious/punctilious.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..b0d2ff42 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,38 @@ +[project] +name = "punctilious" +version = "1.0.0" +authors = [ + { name = "David Doret", email = "david.doret@icloud.com" }, +] +keywords = ["math", "mathematics", "proof", "proof assistant", "math proof assistant", "formal system"] +description = "A human-friendly and developer-friendly math proof assistant" +readme = "README.md" +requires-python = ">=3.11" +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Education", + "Intended Audience :: Science/Research", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Natural Language :: English", + "Operating System :: OS Independent", + "Topic :: Education", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics" +] +# repository = "https://github.com/daviddoret/punctilious" +# homepage = "https://github.com/daviddoret/punctilious" +# documentation = "https://punctilious.readthedocs.io/en/latest/" +# license = "MIT License" + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project.urls] +"Homepage" = "https://github.com/daviddoret/punctilious" +"Bug Tracker" = "https://github.com/daviddoret/punctilious/issues" +"Documentation" = "https://punctilious.readthedocs.io/en/latest/" +"Repository" = "https://github.com/daviddoret/punctilious" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..4c175182 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,46 @@ +# https://godatadriven.com/blog/a-practical-guide-to-setuptools-and-pyproject-toml/ + + +[options] +# install_requires = +package_dir = + =punctilious +zip_safe = True +include_package_data = True + +[options.extras_require] + +[options.entry_points] + +[options.packages.find] +where = punctilious + +[options.package_data] +#example = data/schema.json, *.txt +#* = README.md + +[metadata] +name = punctilious +version = 1.0.0 #attr: example.__version__ +author = David Doret +author_email = david.doret@icloud.com +url = https://github.com/daviddoret/punctilious +description = A human-friendly and developer-friendly math proof assistant +long_description = file: README.md +long_description_content_type = text/markdown +keywords = math, mathematics, proof, proof theory, theory, formal system, proof assistant, math proof assistant +license = MIT License +classifiers = + Development Status :: 4 - Beta + Intended Audience :: Developers + Intended Audience :: Education + Intended Audience :: Science/Research + Programming Language :: Python + Programming Language :: Python :: 3 + License :: OSI Approved :: MIT License + Natural Language :: English + Operating System :: OS Independent + Topic :: Education + Topic :: Scientific/Engineering + Topic :: Scientific/Engineering :: Mathematics + diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..53caad88 --- /dev/null +++ b/setup.py @@ -0,0 +1,6 @@ +from setuptools import setup + +setup(name='punctilious', version='1.0.0', packages=[''], package_dir={'': 'punctilious'}, + url='https://github.com/daviddoret/punctilious', license='MIT License', author='David Doret', + author_email='david.doret@icloud.com', + description='A human-friendly and developer-friendly math proof assistant') diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_plaintext.html b/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_plaintext.html index aba3fe3b..7f0bde7b 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_plaintext.html +++ b/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_plaintext.html @@ -88,7 +88,7 @@

// parsing and collecting nodes and edges from the python - nodes = new vis.DataSet([{"color": "#81C784", "id": "A1", "label": "A1 (2.1) : \"0 is a\nnatural number.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P1", "label": "P1 : (0 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P1): (0 is-a\nnatural-number). Proof: \"0 is a\nnatural number.\" is postulated\nby axiom 2.1 (A1). (0 is-a\nnatural-number) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: \ud835\udc9c \u22a2 P, it\nfollows that (0 is-a natural-\nnumber). QED"}, {"color": "#81C784", "id": "A2", "label": "A2 (2.2) : \"If n is\na natural number,\nthen n++ is a\nnatural number.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P2", "label": "P2 : ((n1 is-a\nnatural-number) ==\u003e\n((n1)++ is-a\nnatural-number))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P2): ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)). Proof: \"If n\nis a natural number, then n++ is\na natural number.\" is postulated\nby axiom 2.2 (A2). ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: \ud835\udc9c \u22a2 P, it\nfollows that ((n1 is-a natural-\nnumber) ==\u003e ((n1)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P3", "label": "P3 : ((0 is-a\nnatural-number) ==\u003e\n((0)++ is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P3): ((0 is-a\nnatural-number) ==\u003e ((0)++ is-a\nnatural-number)). Proof: ((n1\nis-a natural-number) ==\u003e ((n1)++\nis-a natural-number)) follows\nfrom prop. (P2). Let n1 =\n0.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((0\nis-a natural-number) ==\u003e ((0)++\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P4", "label": "P4 (2.2.3) : ((0)++\nis-a natural-number)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.2.3 (T1.P4):\n((0)++ is-a natural-number).\nProof: ((0 is-a natural-number)\n==\u003e ((0)++ is-a natural-number))\nfollows from prop. (P3).(0 is-a\nnatural-number) follows from\nprop. (P1).Therefore, by the\nmodus-ponens inference rule: ((P\n\u27f9 Q), P) \u22a2 Q, it follows that\n((0)++ is-a natural-number). QED"}, {"color": "#90CAF9", "id": "D1", "label": "D1 : \"We define 1 to\nbe the number 0++, 2\nto be the number\n(0++)++, 3 to be the\nnumber\n((0++)++)++,etc. (In\nother words, 1 :=\n0++, 2 := 1++, 3 :=\n2++, etc. In this\ntext I use \"x := y\"\nto denote the\nstatement that x is\ndefined to equal\ny.)\"", "shape": "box"}, {"color": "#FFF59D", "id": "P5", "label": "P5 : (1 = (0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P5): (1 =\n(0)++). Proof: \"We define 1 to\nbe the number 0++, 2 to be the\nnumber (0++)++, 3 to be the\nnumber ((0++)++)++,etc. (In\nother words, 1 := 0++, 2 := 1++,\n3 := 2++, etc. In this text I\nuse \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (1 = (0)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (1 = (0)++). QED"}, {"color": "#FFF59D", "id": "P6", "label": "P6 : (2 = ((0)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P6): (2 =\n((0)++)++). Proof: \"We define 1\nto be the number 0++, 2 to be\nthe number (0++)++, 3 to be the\nnumber ((0++)++)++,etc. (In\nother words, 1 := 0++, 2 := 1++,\n3 := 2++, etc. In this text I\nuse \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (2 = ((0)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (2 = ((0)++)++).\nQED"}, {"color": "#FFF59D", "id": "P7", "label": "P7 : (3 =\n(((0)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P7): (3 =\n(((0)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (3 = (((0)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (3 =\n(((0)++)++)++). QED"}, {"color": "#FFF59D", "id": "P8", "label": "P8 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P8): (4 =\n((((0)++)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (4 = ((((0)++)++)++)++) is\nan interpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (4 =\n((((0)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P9", "label": "P9 : (((0)++ is-a\nnatural-number) ==\u003e\n(((0)++)++ is-a\nnatural-number))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P9): (((0)++\nis-a natural-number) ==\u003e\n(((0)++)++ is-a natural-\nnumber)). Proof: ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) follows from\nprop. (P2). Let n1 =\n(0)++.Therefore, by the\nvariable-substitution inference\nrule: (P, \ud835\udef7) \u22a2 P\u0027, it follows\nthat (((0)++ is-a natural-\nnumber) ==\u003e (((0)++)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P10", "label": "P10 : (((0)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P10): (((0)++)++\nis-a natural-number). Proof:\n(((0)++ is-a natural-number) ==\u003e\n(((0)++)++ is-a natural-number))\nfollows from prop. (P9).((0)++\nis-a natural-number) follows\nfrom prop. 2.2.3 (P4).Therefore,\nby the modus-ponens inference\nrule: ((P \u27f9 Q), P) \u22a2 Q, it\nfollows that (((0)++)++ is-a\nnatural-number). QED"}, {"color": "#FFF59D", "id": "P11", "label": "P11 : ((((0)++)++\nis-a natural-number)\n==\u003e ((((0)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P11):\n((((0)++)++ is-a natural-number)\n==\u003e ((((0)++)++)++ is-a natural-\nnumber)). Proof: ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) follows from\nprop. (P2). Let n1 =\n((0)++)++.Therefore, by the\nvariable-substitution inference\nrule: (P, \ud835\udef7) \u22a2 P\u0027, it follows\nthat ((((0)++)++ is-a natural-\nnumber) ==\u003e ((((0)++)++)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P12", "label": "P12 : ((((0)++)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P12):\n((((0)++)++)++ is-a natural-\nnumber). Proof: ((((0)++)++ is-a\nnatural-number) ==\u003e\n((((0)++)++)++ is-a natural-\nnumber)) follows from prop.\n(P11).(((0)++)++ is-a natural-\nnumber) follows from prop.\n(P10).Therefore, by the modus-\nponens inference rule: ((P \u27f9 Q),\nP) \u22a2 Q, it follows that\n((((0)++)++)++ is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P13", "label": "P13 :\n(((((0)++)++)++ is-a\nnatural-number) ==\u003e\n(((((0)++)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P13):\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)). Proof:\n((n1 is-a natural-number) ==\u003e\n((n1)++ is-a natural-number))\nfollows from prop. (P2). Let n1\n= (((0)++)++)++.Therefore, by\nthe variable-substitution\ninference rule: (P, \ud835\udef7) \u22a2 P\u0027, it\nfollows that (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)). QED"}, {"color": "#FFF59D", "id": "P14", "label": "P14 :\n(((((0)++)++)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P14):\n(((((0)++)++)++)++ is-a natural-\nnumber). Proof: (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)) follows from prop.\n(P13).((((0)++)++)++ is-a\nnatural-number) follows from\nprop. (P12).Therefore, by the\nmodus-ponens inference rule: ((P\n\u27f9 Q), P) \u22a2 Q, it follows that\n(((((0)++)++)++)++ is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P15", "label": "P15 : ((0)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P15): ((0)++ =\n1). Proof: (1 = (0)++) follows\nfrom prop. (P5). Therefore, by\nthe equality-commutativity\ninference rule: (x = y) \u22a2 (y =\nx), it follows that ((0)++ = 1).\nQED"}, {"color": "#FFF59D", "id": "P16", "label": "P16 : (2 = (1)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P16): (2 =\n(1)++). Proof: (2 = ((0)++)++)\nfollows from prop. (P6). ((0)++\n= 1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (2 = (1)++). QED"}, {"color": "#FFF59D", "id": "P17", "label": "P17 : (((0)++)++ =\n2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P17): (((0)++)++\n= 2). Proof: (2 = ((0)++)++)\nfollows from prop. (P6).\nTherefore, by the equality-\ncommutativity inference rule: (x\n= y) \u22a2 (y = x), it follows that\n(((0)++)++ = 2). QED"}, {"color": "#FFF59D", "id": "P18", "label": "P18 : (3 = (2)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P18): (3 =\n(2)++). Proof: (3 =\n(((0)++)++)++) follows from\nprop. (P7). (((0)++)++ = 2)\nfollows from prop.\n(P17).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (3 = (2)++). QED"}, {"color": "#FFF59D", "id": "P19", "label": "P19 : ((((0)++)++)++\n= 3)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P19):\n((((0)++)++)++ = 3). Proof: (3 =\n(((0)++)++)++) follows from\nprop. (P7). Therefore, by the\nequality-commutativity inference\nrule: (x = y) \u22a2 (y = x), it\nfollows that ((((0)++)++)++ =\n3). QED"}, {"color": "#FFF59D", "id": "P20", "label": "P20 : ((2)++ = 3)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P20): ((2)++ =\n3). Proof: ((((0)++)++)++ = 3)\nfollows from prop. (P19).\n(((0)++)++ = 2) follows from\nprop. (P17).Therefore, by the\nequal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((2)++ = 3).\nQED"}, {"color": "#FFF59D", "id": "P21", "label": "P21 (2.1.4) : (3\nis-a natural-number)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.4 (T1.P21): (3\nis-a natural-number). Proof:\n((((0)++)++)++ is-a natural-\nnumber) follows from prop.\n(P12). ((((0)++)++)++ = 3)\nfollows from prop.\n(P19).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (3 is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P22", "label": "P22 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P22): (4 =\n((((0)++)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (4 = ((((0)++)++)++)++) is\nan interpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (4 =\n((((0)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P23", "label": "P23 :\n(((((0)++)++)++)++ =\n4)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P23):\n(((((0)++)++)++)++ = 4). Proof:\n(4 = ((((0)++)++)++)++) follows\nfrom prop. (P8). Therefore, by\nthe equality-commutativity\ninference rule: (x = y) \u22a2 (y =\nx), it follows that\n(((((0)++)++)++)++ = 4). QED"}, {"color": "#FFF59D", "id": "P24", "label": "P24 : ((3)++ = 4)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P24): ((3)++ =\n4). Proof: (((((0)++)++)++)++ =\n4) follows from prop. (P23).\n((((0)++)++)++ = 3) follows from\nprop. (P19).Therefore, by the\nequal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((3)++ = 4).\nQED"}, {"color": "#FFF59D", "id": "P25", "label": "P25 :\n(((((0)++)++)++ is-a\nnatural-number) ==\u003e\n(((((0)++)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P25):\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)). Proof:\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)) follows\nfrom prop. (P13). ((3)++ = 4)\nfollows from prop.\n(P24).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)). QED"}, {"color": "#FFF59D", "id": "P26", "label": "P26 : (4 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P26): (4 is-a\nnatural-number). Proof:\n(((((0)++)++)++)++ is-a natural-\nnumber) follows from prop.\n(P14). (((((0)++)++)++)++ = 4)\nfollows from prop.\n(P23).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (4 is-a natural-\nnumber). QED"}, {"color": "#81C784", "id": "A3", "label": "A3 (2.3) : \"0 is not\nthe successor of any\nnatural number;\ni.e., we have n++ 0\nfor every natural\nnumber n.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P27", "label": "P27 : ((n2 is-a\nnatural-number) ==\u003e\n((n2)++ neq 0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P27): ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)). Proof: \"0 is not the\nsuccessor of any natural number;\ni.e., we have n++ 0 for every\nnatural number n.\" is postulated\nby axiom 2.3 (A3). ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)) is a valid formula statement\ninterpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: \ud835\udc9c\n\u22a2 P, it follows that ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)). QED"}, {"color": "#FFF59D", "id": "P28", "label": "P28 : ((3 is-a\nnatural-number) ==\u003e\n((3)++ neq 0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P28): ((3 is-a\nnatural-number) ==\u003e ((3)++ neq\n0)). Proof: ((n2 is-a natural-\nnumber) ==\u003e ((n2)++ neq 0))\nfollows from prop. (P27). Let n2\n= 3.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((3\nis-a natural-number) ==\u003e ((3)++\nneq 0)). QED"}, {"color": "#FFF59D", "id": "P29", "label": "P29 : ((3)++ neq 0)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P29): ((3)++ neq\n0). Proof: ((3 is-a natural-\nnumber) ==\u003e ((3)++ neq 0))\nfollows from prop. (P28).(3 is-a\nnatural-number) follows from\nprop. 2.1.4 (P21).Therefore, by\nthe modus-ponens inference rule:\n((P \u27f9 Q), P) \u22a2 Q, it follows\nthat ((3)++ neq 0). QED"}, {"color": "#FFF59D", "id": "P30", "label": "P30 (2.1.6) : (4 neq\n0)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.6 (T1.P30): (4\nneq 0). Proof: ((3)++ neq 0)\nfollows from prop. (P29). ((3)++\n= 4) follows from prop.\n(P24).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (4 neq 0). QED"}, {"color": "#81C784", "id": "A4", "label": "A4 (2.4) :\n\"Different natural\nnumbers must have\ndifferent\nsuccessors; i.e., if\nn, m are natural\nnumbers and n m,\nthen n++ m++.\nEquivalently, if n++\n= m++, then we must\nhave n = m.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P31", "label": "P31 : ((((n3 is-a\nnatural-number) and\n(m1 is-a natural-\nnumber)) and (n3 neq\nm1)) ==\u003e ((n3)++ neq\n(m1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P31): ((((n3\nis-a natural-number) and (m1\nis-a natural-number)) and (n3\nneq m1)) ==\u003e ((n3)++ neq\n(m1)++)). Proof: \"Different\nnatural numbers must have\ndifferent successors; i.e., if\nn, m are natural numbers and n\nm, then n++ m++. Equivalently,\nif n++ = m++, then we must have\nn = m.\" is postulated by axiom\n2.4 (A4). ((((n3 is-a natural-\nnumber) and (m1 is-a natural-\nnumber)) and (n3 neq m1)) ==\u003e\n((n3)++ neq (m1)++)) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: \ud835\udc9c \u22a2 P, it\nfollows that ((((n3 is-a\nnatural-number) and (m1 is-a\nnatural-number)) and (n3 neq\nm1)) ==\u003e ((n3)++ neq (m1)++)).\nQED"}, {"color": "#FFF59D", "id": "P32", "label": "P32 : ((((n4 is-a\nnatural-number) and\n(m2 is-a natural-\nnumber)) and ((n4)++\n= (m2)++)) ==\u003e (n4 =\nm2))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P32): ((((n4\nis-a natural-number) and (m2\nis-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)). Proof: \"Different natural\nnumbers must have different\nsuccessors; i.e., if n, m are\nnatural numbers and n m, then\nn++ m++. Equivalently, if n++ =\nm++, then we must have n = m.\"\nis postulated by axiom 2.4 (A4).\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) is a valid formula\nstatement interpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: \ud835\udc9c\n\u22a2 P, it follows that ((((n4 is-a\nnatural-number) and (m2 is-a\nnatural-number)) and ((n4)++ =\n(m2)++)) ==\u003e (n4 = m2)). QED"}, {"color": "#FFF59D", "id": "P33", "label": "P33 : ((((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and (4 neq\n0)) ==\u003e ((4)++ neq\n(0)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P33): ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 4, m1 =\n0.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((((4\nis-a natural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)). QED"}, {"color": "#FFF59D", "id": "P34", "label": "P34 : ((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P34): ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). Proof: (4 is-a\nnatural-number) (P) follows from\nprop. (P26). (0 is-a natural-\nnumber) (Q) follows from prop.\n(P1).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P35", "label": "P35 : (((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and (4 neq\n0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P35): (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0)).\nProof: ((4 is-a natural-number)\nand (0 is-a natural-number)) (P)\nfollows from prop. (P34). (4 neq\n0) (Q) follows from prop. 2.1.6\n(P30).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0)).\nQED"}, {"color": "#FFF59D", "id": "P36", "label": "P36 : ((4)++ neq\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P36): ((4)++ neq\n(0)++). Proof: ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)) follows\nfrom prop. (P33).(((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\nfollows from prop.\n(P35).Therefore, by the modus-\nponens inference rule: ((P \u27f9 Q),\nP) \u22a2 Q, it follows that ((4)++\nneq (0)++). QED"}, {"color": "#FFF59D", "id": "P37", "label": "P37 : (5 = (((((0)++\n)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P37): (5 =\n(((((0)++)++)++)++)++). Proof:\n\"We define 1 to be the number\n0++, 2 to be the number (0++)++,\n3 to be the number\n((0++)++)++,etc. (In other\nwords, 1 := 0++, 2 := 1++, 3 :=\n2++, etc. In this text I use \"x\n:= y\" to denote the statement\nthat x is defined to equal y.)\"\nis postulated by def. (D1). (5 =\n(((((0)++)++)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (5 =\n(((((0)++)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P38", "label": "P38 : ((((((0)++)++)\n++)++)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P38):\n((((((0)++)++)++)++)++ = 5).\nProof: (5 =\n(((((0)++)++)++)++)++) follows\nfrom prop. (P37). Therefore, by\nthe equality-commutativity\ninference rule: (x = y) \u22a2 (y =\nx), it follows that\n((((((0)++)++)++)++)++ = 5). QED"}, {"color": "#FFF59D", "id": "P39", "label": "P39 : ((4)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P39): ((4)++ =\n5). Proof:\n((((((0)++)++)++)++)++ = 5)\nfollows from prop. (P38).\n(((((0)++)++)++)++ = 4) follows\nfrom prop. (P23).Therefore, by\nthe equal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((4)++ = 5).\nQED"}, {"color": "#FFF59D", "id": "P40", "label": "P40 : (5 = (4)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P40): (5 =\n(4)++). Proof: ((4)++ = 5)\nfollows from prop. (P39).\nTherefore, by the equality-\ncommutativity inference rule: (x\n= y) \u22a2 (y = x), it follows that\n(5 = (4)++). QED"}, {"color": "#FFF59D", "id": "P41", "label": "P41 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e ((5)++ neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P41): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 5, m1 =\n1.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). QED"}, {"color": "#FFF59D", "id": "P42", "label": "P42 : ((4 is-a\nnatural-number) ==\u003e\n((4)++ is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P42): ((4 is-a\nnatural-number) ==\u003e ((4)++ is-a\nnatural-number)). Proof: ((n1\nis-a natural-number) ==\u003e ((n1)++\nis-a natural-number)) follows\nfrom prop. (P2). Let n1 =\n4.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((4\nis-a natural-number) ==\u003e ((4)++\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P43", "label": "P43 : ((4 is-a\nnatural-number) ==\u003e\n(5 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P43): ((4 is-a\nnatural-number) ==\u003e (5 is-a\nnatural-number)). Proof: ((4\nis-a natural-number) ==\u003e ((4)++\nis-a natural-number)) follows\nfrom prop. (P42). ((4)++ = 5)\nfollows from prop.\n(P39).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((4 is-a natural-\nnumber) ==\u003e (5 is-a natural-\nnumber)). QED"}, {"color": "#FFF59D", "id": "P44", "label": "P44 : (5 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P44): (5 is-a\nnatural-number). Proof: ((4 is-a\nnatural-number) ==\u003e (5 is-a\nnatural-number)) follows from\nprop. (P43).(4 is-a natural-\nnumber) follows from prop.\n(P26).Therefore, by the modus-\nponens inference rule: ((P \u27f9 Q),\nP) \u22a2 Q, it follows that (5 is-a\nnatural-number). QED"}, {"color": "#FFF59D", "id": "P45", "label": "P45 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e ((5)++ neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P45): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 5, m1 =\n1.Therefore, by the variable-\nsubstitution inference rule: (P,\n\ud835\udef7) \u22a2 P\u0027, it follows that ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). QED"}, {"color": "#FFF59D", "id": "P46", "label": "P46 : ((4)++ neq\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P46): ((4)++ neq\n(0)++). Proof: ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)) follows\nfrom prop. (P33).(((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\nfollows from prop.\n(P35).Therefore, by the modus-\nponens inference rule: ((P \u27f9 Q),\nP) \u22a2 Q, it follows that ((4)++\nneq (0)++). QED"}, {"color": "#FFF59D", "id": "P47", "label": "P47 : (5 neq (0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P47): (5 neq\n(0)++). Proof: ((4)++ neq (0)++)\nfollows from prop. (P46). ((4)++\n= 5) follows from prop.\n(P39).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (5 neq (0)++). QED"}, {"color": "#FFF59D", "id": "P48", "label": "P48 : (6 = ((((((0)+\n+)++)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P48): (6 =\n((((((0)++)++)++)++)++)++).\nProof: \"We define 1 to be the\nnumber 0++, 2 to be the number\n(0++)++, 3 to be the number\n((0++)++)++,etc. (In other\nwords, 1 := 0++, 2 := 1++, 3 :=\n2++, etc. In this text I use \"x\n:= y\" to denote the statement\nthat x is defined to equal y.)\"\nis postulated by def. (D1). (6 =\n((((((0)++)++)++)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (6 =\n((((((0)++)++)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P49", "label": "P49 : (((((((0)++)++\n)++)++)++)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P49):\n(((((((0)++)++)++)++)++)++ = 6).\nProof: (6 =\n((((((0)++)++)++)++)++)++)\nfollows from prop. (P48).\nTherefore, by the equality-\ncommutativity inference rule: (x\n= y) \u22a2 (y = x), it follows that\n(((((((0)++)++)++)++)++)++ = 6).\nQED"}, {"color": "#FFF59D", "id": "P50", "label": "P50 : (1 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P50): (1 is-a\nnatural-number). Proof: ((0)++\nis-a natural-number) follows\nfrom prop. 2.2.3 (P4). ((0)++ =\n1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (1 is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P51", "label": "P51 : ((5)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P51): ((5)++ =\n6). Proof:\n(((((((0)++)++)++)++)++)++ = 6)\nfollows from prop. (P49).\n((((((0)++)++)++)++)++ = 5)\nfollows from prop.\n(P38).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((5)++ = 6). QED"}, {"color": "#FFF59D", "id": "P52", "label": "P52 : (6 = (5)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P52): (6 =\n(5)++). Proof: ((5)++ = 6)\nfollows from prop. (P51).\nTherefore, by the equality-\ncommutativity inference rule: (x\n= y) \u22a2 (y = x), it follows that\n(6 = (5)++). QED"}, {"color": "#FFF59D", "id": "P66", "label": "P66 : Inc(H1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P66): Inc(H1).\nProof: (4 = 0) follows from\nprop. (P65). (4 neq 0) follows\nfrom prop. 2.1.6 (P30).\nTherefore, by the inconsistency-\nby-inequality-introduction\ninference rule: ((P = Q), (P \u2260\nQ)) \u22a2 Inc(\ud835\udcaf), it follows that\nInc(H1). QED"}, {"color": "#FFF59D", "id": "P65", "label": "P65 : (4 = 0)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P65): (4 = 0).\nProof: ((((4 is-a natural-\nnumber) and (0 is-a natural-\nnumber)) and ((4)++ = (0)++))\n==\u003e (4 = 0)) follows from prop.\n(P64).(((4 is-a natural-number)\nand (0 is-a natural-number)) and\n((4)++ = (0)++)) follows from\nprop. (P63).Therefore, by the\nmodus-ponens inference rule: ((P\n\u27f9 Q), P) \u22a2 Q, it follows that (4\n= 0). QED"}, {"color": "#FFF59D", "id": "P64", "label": "P64 : ((((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and ((4)++\n= (0)++)) ==\u003e (4 =\n0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P64): ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)) ==\u003e (4 = 0)). Proof:\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) follows from prop. (P32).\nLet n4 = 4, m2 = 0.Therefore, by\nthe variable-substitution\ninference rule: (P, \ud835\udef7) \u22a2 P\u0027, it\nfollows that ((((4 is-a natural-\nnumber) and (0 is-a natural-\nnumber)) and ((4)++ = (0)++))\n==\u003e (4 = 0)). QED"}, {"color": "#FFF59D", "id": "P63", "label": "P63 : (((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and ((4)++\n= (0)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P63): (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)). Proof: ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) (P) follows\nfrom prop. (P62). ((4)++ =\n(0)++) (Q) follows from prop.\n(P61).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)). QED"}, {"color": "#FFF59D", "id": "P62", "label": "P62 : ((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P62): ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). Proof: (4 is-a\nnatural-number) (P) follows from\nprop. (P26). (0 is-a natural-\nnumber) (Q) follows from prop.\n(P1).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P61", "label": "P61 : ((4)++ =\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P61): ((4)++ =\n(0)++). Proof: ((4)++ = 1)\nfollows from prop. (P60). (1 =\n(0)++) follows from prop.\n(P5).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((4)++ = (0)++).\nQED"}, {"color": "#FFF59D", "id": "P60", "label": "P60 : ((4)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P60): ((4)++ =\n1). Proof: (5 = 1) follows from\nprop. (P59). (5 = (4)++) follows\nfrom prop. (P40).Therefore, by\nthe equal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((4)++ = 1).\nQED"}, {"color": "#FFF59D", "id": "P59", "label": "P59 : (5 = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P59): (5 = 1).\nProof: ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and ((5)++ = (1)++))\n==\u003e (5 = 1)) follows from prop.\n(P58).(((5 is-a natural-number)\nand (1 is-a natural-number)) and\n((5)++ = (1)++)) follows from\nprop. (P57).Therefore, by the\nmodus-ponens inference rule: ((P\n\u27f9 Q), P) \u22a2 Q, it follows that (5\n= 1). QED"}, {"color": "#FFF59D", "id": "P58", "label": "P58 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and ((5)++\n= (1)++)) ==\u003e (5 =\n1))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P58): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)) ==\u003e (5 = 1)). Proof:\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) follows from prop. (P32).\nLet n4 = 5, m2 = 1.Therefore, by\nthe variable-substitution\ninference rule: (P, \ud835\udef7) \u22a2 P\u0027, it\nfollows that ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and ((5)++ = (1)++))\n==\u003e (5 = 1)). QED"}, {"color": "#FFF59D", "id": "P57", "label": "P57 : (((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and ((5)++\n= (1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P57): (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)). Proof: ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) (P) follows\nfrom prop. (P56). ((5)++ =\n(1)++) (Q) follows from prop.\n(P55).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)). QED"}, {"color": "#FFF59D", "id": "P56", "label": "P56 : ((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P56): ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). Proof: (5 is-a\nnatural-number) (P) follows from\nprop. (P44). (1 is-a natural-\nnumber) (Q) follows from prop.\n(P50).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P55", "label": "P55 : ((5)++ =\n(1)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P55): ((5)++ =\n(1)++). Proof: ((5)++ = 2)\nfollows from prop. (P54). (2 =\n(1)++) follows from prop.\n(P16).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((5)++ = (1)++).\nQED"}, {"color": "#FFF59D", "id": "P54", "label": "P54 : ((5)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P54): ((5)++ =\n2). Proof: (6 = 2) follows from\nprop. (P53). (6 = (5)++) follows\nfrom prop. (P52).Therefore, by\nthe equal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((5)++ = 2).\nQED"}, {"color": "#FFF59D", "id": "P53", "label": "P53 : (6 = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P53): (6 = 2).\nProof: \"By hypothesis, assume (6\n= 2) is true.\" is postulated by\naxiom (A5). (6 = 2) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: \ud835\udc9c \u22a2 P, it\nfollows that (6 = 2). QED"}, {"color": "#81C784", "id": "A5", "label": "A5 : \"By hypothesis,\nassume (6 = 2) is\ntrue.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P67", "label": "P67 (2.1.8) : (6 neq\n2)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.8 (T1.P67): (6\nneq 2). Proof: Let hyp. (H1) be\nthe hypothesis (6 = 2). Inc(H1)\nfollows from prop.\n(P66).Therefore, by the proof-\nby-refutation-of-equality\ninference rule: (\u210b(P=Q), Inc(\u210b))\n\u22a2 (P \u2260 Q), it follows that (6\nneq 2). QED"}, {"color": "#FFF59D", "id": "P68", "label": "P68 : ((1)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P68): ((1)++ =\n2). Proof: (((0)++)++ = 2)\nfollows from prop. (P17). ((0)++\n= 1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((1)++ = 2). QED"}, {"color": "#FFF59D", "id": "P69", "label": "P69 : (5 neq 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P69): (5 neq 1).\nProof: (5 neq (0)++) follows\nfrom prop. (P47). ((0)++ = 1)\nfollows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that (5 neq 1). QED"}, {"color": "#FFF59D", "id": "P70", "label": "P70 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e (6 neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P70): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq (1)++)). Proof: ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)) follows\nfrom prop. (P45). ((5)++ = 6)\nfollows from prop.\n(P51).Therefore, by the equal-\nterms-substitution inference\nrule: (P, (Q = R)) \u22a2 P\u0027, it\nfollows that ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and (5 neq 1)) ==\u003e (6\nneq (1)++)). QED"}, {"color": "#FFF59D", "id": "P71", "label": "P71 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e (6 neq 2))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P71): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq 2)). Proof: ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq (1)++)) follows from\nprop. (P70). ((1)++ = 2) follows\nfrom prop. (P68).Therefore, by\nthe equal-terms-substitution\ninference rule: (P, (Q = R)) \u22a2\nP\u0027, it follows that ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq 2)). QED"}, {"color": "#FFF59D", "id": "P72", "label": "P72 : ((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P72): ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). Proof: (5 is-a\nnatural-number) (P) follows from\nprop. (P44). (1 is-a natural-\nnumber) (Q) follows from prop.\n(P50).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P73", "label": "P73 : (((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P73): (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1)).\nProof: ((5 is-a natural-number)\nand (1 is-a natural-number)) (P)\nfollows from prop. (P72). (5 neq\n1) (Q) follows from prop.\n(P69).Therefore, by the\nconjunction-introduction\ninference rule: (P, Q) \u22a2 (P \u22c0\nQ), it follows that (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1)).\nQED"}, {"color": "#FFF59D", "id": "P74", "label": "P74 : (6 neq 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P74): (6 neq 2).\nProof: ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and (5 neq 1)) ==\u003e (6\nneq 2)) follows from prop.\n(P71).(((5 is-a natural-number)\nand (1 is-a natural-number)) and\n(5 neq 1)) follows from prop.\n(P73).Therefore, by the modus-\nponens inference rule: ((P \u27f9 Q),\nP) \u22a2 Q, it follows that (6 neq\n2). QED"}, {"color": "#81C784", "id": "A6", "label": "A6 : \"Let P(n) be\nany property\npertaining to a\nnatural number n.\nSuppose that P(O) is\ntrue, and suppose\nthat whenever P(n)\nis true, P(n++) is\nalso true. Then P(n)\nis true for every\nnatural number n.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P75", "label": "P75 : (((n5 is-a\nnatural-number) and\n(P1(0) and (P1(n5)\n==\u003e P1((n5)++))))\n==\u003e ((m3 is-a\nnatural-number) ==\u003e\nP1(m3)))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P75): (((n5 is-a\nnatural-number) and (P1(0) and\n(P1(n5) ==\u003e P1((n5)++)))) ==\u003e\n((m3 is-a natural-number) ==\u003e\nP1(m3))). Proof: \"Let P(n) be\nany property pertaining to a\nnatural number n. Suppose that\nP(O) is true, and suppose that\nwhenever P(n) is true, P(n++) is\nalso true. Then P(n) is true for\nevery natural number n.\" is\npostulated by axiom schema (A6).\n(((n5 is-a natural-number) and\n(P1(0) and (P1(n5) ==\u003e\nP1((n5)++)))) ==\u003e ((m3 is-a\nnatural-number) ==\u003e P1(m3))) is\na valid formula statement\ninterpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: \ud835\udc9c\n\u22a2 P, it follows that (((n5 is-a\nnatural-number) and (P1(0) and\n(P1(n5) ==\u003e P1((n5)++)))) ==\u003e\n((m3 is-a natural-number) ==\u003e\nP1(m3))). QED"}]); + nodes = new vis.DataSet([{"color": "#81C784", "id": "A1", "label": "A1 (2.1) : \"0 is a\nnatural number.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P1", "label": "P1 : (0 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P1): (0 is-a\nnatural-number). Proof: \"0 is a\nnatural number.\" is postulated\nby axiom 2.1 (A1). (0 is-a\nnatural-number) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: A |- P, it\nfollows that (0 is-a natural-\nnumber). QED"}, {"color": "#81C784", "id": "A2", "label": "A2 (2.2) : \"If n is\na natural number,\nthen n++ is a\nnatural number.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P2", "label": "P2 : ((n1 is-a\nnatural-number) ==\u003e\n((n1)++ is-a\nnatural-number))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P2): ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)). Proof: \"If n\nis a natural number, then n++ is\na natural number.\" is postulated\nby axiom 2.2 (A2). ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: A |- P, it\nfollows that ((n1 is-a natural-\nnumber) ==\u003e ((n1)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P3", "label": "P3 : ((0 is-a\nnatural-number) ==\u003e\n((0)++ is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P3): ((0 is-a\nnatural-number) ==\u003e ((0)++ is-a\nnatural-number)). Proof: ((n1\nis-a natural-number) ==\u003e ((n1)++\nis-a natural-number)) follows\nfrom prop. (P2). Let n1 =\n0.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that ((0\nis-a natural-number) ==\u003e ((0)++\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P4", "label": "P4 (2.2.3) : ((0)++\nis-a natural-number)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.2.3 (T1.P4):\n((0)++ is-a natural-number).\nProof: ((0 is-a natural-number)\n==\u003e ((0)++ is-a natural-number))\nfollows from prop. (P3).(0 is-a\nnatural-number) follows from\nprop. (P1).Therefore, by the\nmodus-ponens inference rule:\n(((P1 ==\u003e P1) , P1) |- Q1), it\nfollows that ((0)++ is-a\nnatural-number). QED"}, {"color": "#90CAF9", "id": "D1", "label": "D1 : \"We define 1 to\nbe the number 0++, 2\nto be the number\n(0++)++, 3 to be the\nnumber\n((0++)++)++,etc. (In\nother words, 1 :=\n0++, 2 := 1++, 3 :=\n2++, etc. In this\ntext I use \"x := y\"\nto denote the\nstatement that x is\ndefined to equal\ny.)\"", "shape": "box"}, {"color": "#FFF59D", "id": "P5", "label": "P5 : (1 = (0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P5): (1 =\n(0)++). Proof: \"We define 1 to\nbe the number 0++, 2 to be the\nnumber (0++)++, 3 to be the\nnumber ((0++)++)++,etc. (In\nother words, 1 := 0++, 2 := 1++,\n3 := 2++, etc. In this text I\nuse \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (1 = (0)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (1 = (0)++). QED"}, {"color": "#FFF59D", "id": "P6", "label": "P6 : (2 = ((0)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P6): (2 =\n((0)++)++). Proof: \"We define 1\nto be the number 0++, 2 to be\nthe number (0++)++, 3 to be the\nnumber ((0++)++)++,etc. (In\nother words, 1 := 0++, 2 := 1++,\n3 := 2++, etc. In this text I\nuse \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (2 = ((0)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (2 = ((0)++)++).\nQED"}, {"color": "#FFF59D", "id": "P7", "label": "P7 : (3 =\n(((0)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P7): (3 =\n(((0)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (3 = (((0)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (3 =\n(((0)++)++)++). QED"}, {"color": "#FFF59D", "id": "P8", "label": "P8 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P8): (4 =\n((((0)++)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (4 = ((((0)++)++)++)++) is\nan interpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (4 =\n((((0)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P9", "label": "P9 : (((0)++ is-a\nnatural-number) ==\u003e\n(((0)++)++ is-a\nnatural-number))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P9): (((0)++\nis-a natural-number) ==\u003e\n(((0)++)++ is-a natural-\nnumber)). Proof: ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) follows from\nprop. (P2). Let n1 =\n(0)++.Therefore, by the\nvariable-substitution inference\nrule: (P, Phi) |- P\u0027, it follows\nthat (((0)++ is-a natural-\nnumber) ==\u003e (((0)++)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P10", "label": "P10 : (((0)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P10): (((0)++)++\nis-a natural-number). Proof:\n(((0)++ is-a natural-number) ==\u003e\n(((0)++)++ is-a natural-number))\nfollows from prop. (P9).((0)++\nis-a natural-number) follows\nfrom prop. 2.2.3 (P4).Therefore,\nby the modus-ponens inference\nrule: (((P1 ==\u003e P1) , P1) |-\nQ1), it follows that (((0)++)++\nis-a natural-number). QED"}, {"color": "#FFF59D", "id": "P11", "label": "P11 : ((((0)++)++\nis-a natural-number)\n==\u003e ((((0)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P11):\n((((0)++)++ is-a natural-number)\n==\u003e ((((0)++)++)++ is-a natural-\nnumber)). Proof: ((n1 is-a\nnatural-number) ==\u003e ((n1)++ is-a\nnatural-number)) follows from\nprop. (P2). Let n1 =\n((0)++)++.Therefore, by the\nvariable-substitution inference\nrule: (P, Phi) |- P\u0027, it follows\nthat ((((0)++)++ is-a natural-\nnumber) ==\u003e ((((0)++)++)++ is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P12", "label": "P12 : ((((0)++)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P12):\n((((0)++)++)++ is-a natural-\nnumber). Proof: ((((0)++)++ is-a\nnatural-number) ==\u003e\n((((0)++)++)++ is-a natural-\nnumber)) follows from prop.\n(P11).(((0)++)++ is-a natural-\nnumber) follows from prop.\n(P10).Therefore, by the modus-\nponens inference rule: (((P1 ==\u003e\nP1) , P1) |- Q1), it follows\nthat ((((0)++)++)++ is-a\nnatural-number). QED"}, {"color": "#FFF59D", "id": "P13", "label": "P13 :\n(((((0)++)++)++ is-a\nnatural-number) ==\u003e\n(((((0)++)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P13):\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)). Proof:\n((n1 is-a natural-number) ==\u003e\n((n1)++ is-a natural-number))\nfollows from prop. (P2). Let n1\n= (((0)++)++)++.Therefore, by\nthe variable-substitution\ninference rule: (P, Phi) |- P\u0027,\nit follows that (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)). QED"}, {"color": "#FFF59D", "id": "P14", "label": "P14 :\n(((((0)++)++)++)++\nis-a natural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P14):\n(((((0)++)++)++)++ is-a natural-\nnumber). Proof: (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)) follows from prop.\n(P13).((((0)++)++)++ is-a\nnatural-number) follows from\nprop. (P12).Therefore, by the\nmodus-ponens inference rule:\n(((P1 ==\u003e P1) , P1) |- Q1), it\nfollows that (((((0)++)++)++)++\nis-a natural-number). QED"}, {"color": "#FFF59D", "id": "P15", "label": "P15 : ((0)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P15): ((0)++ =\n1). Proof: (1 = (0)++) follows\nfrom prop. (P5). Therefore, by\nthe equality-commutativity\ninference rule: ((x1 = y1) |-\n(y1 = x1)), it follows that\n((0)++ = 1). QED"}, {"color": "#FFF59D", "id": "P16", "label": "P16 : (2 = (1)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P16): (2 =\n(1)++). Proof: (2 = ((0)++)++)\nfollows from prop. (P6). ((0)++\n= 1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (2 = (1)++). QED"}, {"color": "#FFF59D", "id": "P17", "label": "P17 : (((0)++)++ =\n2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P17): (((0)++)++\n= 2). Proof: (2 = ((0)++)++)\nfollows from prop. (P6).\nTherefore, by the equality-\ncommutativity inference rule:\n((x1 = y1) |- (y1 = x1)), it\nfollows that (((0)++)++ = 2).\nQED"}, {"color": "#FFF59D", "id": "P18", "label": "P18 : (3 = (2)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P18): (3 =\n(2)++). Proof: (3 =\n(((0)++)++)++) follows from\nprop. (P7). (((0)++)++ = 2)\nfollows from prop.\n(P17).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (3 = (2)++). QED"}, {"color": "#FFF59D", "id": "P19", "label": "P19 : ((((0)++)++)++\n= 3)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P19):\n((((0)++)++)++ = 3). Proof: (3 =\n(((0)++)++)++) follows from\nprop. (P7). Therefore, by the\nequality-commutativity inference\nrule: ((x1 = y1) |- (y1 = x1)),\nit follows that ((((0)++)++)++ =\n3). QED"}, {"color": "#FFF59D", "id": "P20", "label": "P20 : ((2)++ = 3)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P20): ((2)++ =\n3). Proof: ((((0)++)++)++ = 3)\nfollows from prop. (P19).\n(((0)++)++ = 2) follows from\nprop. (P17).Therefore, by the\nequal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((2)++ = 3). QED"}, {"color": "#FFF59D", "id": "P21", "label": "P21 (2.1.4) : (3\nis-a natural-number)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.4 (T1.P21): (3\nis-a natural-number). Proof:\n((((0)++)++)++ is-a natural-\nnumber) follows from prop.\n(P12). ((((0)++)++)++ = 3)\nfollows from prop.\n(P19).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (3 is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P22", "label": "P22 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P22): (4 =\n((((0)++)++)++)++). Proof: \"We\ndefine 1 to be the number 0++, 2\nto be the number (0++)++, 3 to\nbe the number ((0++)++)++,etc.\n(In other words, 1 := 0++, 2 :=\n1++, 3 := 2++, etc. In this text\nI use \"x := y\" to denote the\nstatement that x is defined to\nequal y.)\" is postulated by def.\n(D1). (4 = ((((0)++)++)++)++) is\nan interpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (4 =\n((((0)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P23", "label": "P23 :\n(((((0)++)++)++)++ =\n4)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P23):\n(((((0)++)++)++)++ = 4). Proof:\n(4 = ((((0)++)++)++)++) follows\nfrom prop. (P8). Therefore, by\nthe equality-commutativity\ninference rule: ((x1 = y1) |-\n(y1 = x1)), it follows that\n(((((0)++)++)++)++ = 4). QED"}, {"color": "#FFF59D", "id": "P24", "label": "P24 : ((3)++ = 4)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P24): ((3)++ =\n4). Proof: (((((0)++)++)++)++ =\n4) follows from prop. (P23).\n((((0)++)++)++ = 3) follows from\nprop. (P19).Therefore, by the\nequal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((3)++ = 4). QED"}, {"color": "#FFF59D", "id": "P25", "label": "P25 :\n(((((0)++)++)++ is-a\nnatural-number) ==\u003e\n(((((0)++)++)++)++\nis-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P25):\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)). Proof:\n(((((0)++)++)++ is-a natural-\nnumber) ==\u003e (((((0)++)++)++)++\nis-a natural-number)) follows\nfrom prop. (P13). ((3)++ = 4)\nfollows from prop.\n(P24).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (((((0)++)++)++\nis-a natural-number) ==\u003e\n(((((0)++)++)++)++ is-a natural-\nnumber)). QED"}, {"color": "#FFF59D", "id": "P26", "label": "P26 : (4 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P26): (4 is-a\nnatural-number). Proof:\n(((((0)++)++)++)++ is-a natural-\nnumber) follows from prop.\n(P14). (((((0)++)++)++)++ = 4)\nfollows from prop.\n(P23).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (4 is-a natural-\nnumber). QED"}, {"color": "#81C784", "id": "A3", "label": "A3 (2.3) : \"0 is not\nthe successor of any\nnatural number;\ni.e., we have n++ 0\nfor every natural\nnumber n.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P27", "label": "P27 : ((n2 is-a\nnatural-number) ==\u003e\n((n2)++ neq 0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P27): ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)). Proof: \"0 is not the\nsuccessor of any natural number;\ni.e., we have n++ 0 for every\nnatural number n.\" is postulated\nby axiom 2.3 (A3). ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)) is a valid formula statement\ninterpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: A\n|- P, it follows that ((n2 is-a\nnatural-number) ==\u003e ((n2)++ neq\n0)). QED"}, {"color": "#FFF59D", "id": "P28", "label": "P28 : ((3 is-a\nnatural-number) ==\u003e\n((3)++ neq 0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P28): ((3 is-a\nnatural-number) ==\u003e ((3)++ neq\n0)). Proof: ((n2 is-a natural-\nnumber) ==\u003e ((n2)++ neq 0))\nfollows from prop. (P27). Let n2\n= 3.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that ((3\nis-a natural-number) ==\u003e ((3)++\nneq 0)). QED"}, {"color": "#FFF59D", "id": "P29", "label": "P29 : ((3)++ neq 0)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P29): ((3)++ neq\n0). Proof: ((3 is-a natural-\nnumber) ==\u003e ((3)++ neq 0))\nfollows from prop. (P28).(3 is-a\nnatural-number) follows from\nprop. 2.1.4 (P21).Therefore, by\nthe modus-ponens inference rule:\n(((P1 ==\u003e P1) , P1) |- Q1), it\nfollows that ((3)++ neq 0). QED"}, {"color": "#FFF59D", "id": "P30", "label": "P30 (2.1.6) : (4 neq\n0)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.6 (T1.P30): (4\nneq 0). Proof: ((3)++ neq 0)\nfollows from prop. (P29). ((3)++\n= 4) follows from prop.\n(P24).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (4 neq 0). QED"}, {"color": "#81C784", "id": "A4", "label": "A4 (2.4) :\n\"Different natural\nnumbers must have\ndifferent\nsuccessors; i.e., if\nn, m are natural\nnumbers and n m,\nthen n++ m++.\nEquivalently, if n++\n= m++, then we must\nhave n = m.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P31", "label": "P31 : ((((n3 is-a\nnatural-number) and\n(m1 is-a natural-\nnumber)) and (n3 neq\nm1)) ==\u003e ((n3)++ neq\n(m1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P31): ((((n3\nis-a natural-number) and (m1\nis-a natural-number)) and (n3\nneq m1)) ==\u003e ((n3)++ neq\n(m1)++)). Proof: \"Different\nnatural numbers must have\ndifferent successors; i.e., if\nn, m are natural numbers and n\nm, then n++ m++. Equivalently,\nif n++ = m++, then we must have\nn = m.\" is postulated by axiom\n2.4 (A4). ((((n3 is-a natural-\nnumber) and (m1 is-a natural-\nnumber)) and (n3 neq m1)) ==\u003e\n((n3)++ neq (m1)++)) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: A |- P, it\nfollows that ((((n3 is-a\nnatural-number) and (m1 is-a\nnatural-number)) and (n3 neq\nm1)) ==\u003e ((n3)++ neq (m1)++)).\nQED"}, {"color": "#FFF59D", "id": "P32", "label": "P32 : ((((n4 is-a\nnatural-number) and\n(m2 is-a natural-\nnumber)) and ((n4)++\n= (m2)++)) ==\u003e (n4 =\nm2))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P32): ((((n4\nis-a natural-number) and (m2\nis-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)). Proof: \"Different natural\nnumbers must have different\nsuccessors; i.e., if n, m are\nnatural numbers and n m, then\nn++ m++. Equivalently, if n++ =\nm++, then we must have n = m.\"\nis postulated by axiom 2.4 (A4).\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) is a valid formula\nstatement interpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: A\n|- P, it follows that ((((n4\nis-a natural-number) and (m2\nis-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)). QED"}, {"color": "#FFF59D", "id": "P33", "label": "P33 : ((((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and (4 neq\n0)) ==\u003e ((4)++ neq\n(0)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P33): ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 4, m1 =\n0.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that\n((((4 is-a natural-number) and\n(0 is-a natural-number)) and (4\nneq 0)) ==\u003e ((4)++ neq (0)++)).\nQED"}, {"color": "#FFF59D", "id": "P34", "label": "P34 : ((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P34): ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). Proof: (4 is-a\nnatural-number), of the form P3,\nfollows from prop. (P26). (0\nis-a natural-number), of the\nform Q3, follows from prop.\n(P1). Therefore, by the\nconjunction-introduction\ninference rule: ((P3 , Q3) |-\n(P3 and Q3)), it follows that\n((4 is-a natural-number) and (0\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P35", "label": "P35 : (((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and (4 neq\n0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P35): (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0)).\nProof: ((4 is-a natural-number)\nand (0 is-a natural-number)), of\nthe form P3, follows from prop.\n(P34). (4 neq 0), of the form\nQ3, follows from prop. 2.1.6\n(P30). Therefore, by the\nconjunction-introduction\ninference rule: ((P3 , Q3) |-\n(P3 and Q3)), it follows that\n(((4 is-a natural-number) and (0\nis-a natural-number)) and (4 neq\n0)). QED"}, {"color": "#FFF59D", "id": "P36", "label": "P36 : ((4)++ neq\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P36): ((4)++ neq\n(0)++). Proof: ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)) follows\nfrom prop. (P33).(((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\nfollows from prop.\n(P35).Therefore, by the modus-\nponens inference rule: (((P1 ==\u003e\nP1) , P1) |- Q1), it follows\nthat ((4)++ neq (0)++). QED"}, {"color": "#FFF59D", "id": "P37", "label": "P37 : (5 = (((((0)++\n)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P37): (5 =\n(((((0)++)++)++)++)++). Proof:\n\"We define 1 to be the number\n0++, 2 to be the number (0++)++,\n3 to be the number\n((0++)++)++,etc. (In other\nwords, 1 := 0++, 2 := 1++, 3 :=\n2++, etc. In this text I use \"x\n:= y\" to denote the statement\nthat x is defined to equal y.)\"\nis postulated by def. (D1). (5 =\n(((((0)++)++)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (5 =\n(((((0)++)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P38", "label": "P38 : ((((((0)++)++)\n++)++)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P38):\n((((((0)++)++)++)++)++ = 5).\nProof: (5 =\n(((((0)++)++)++)++)++) follows\nfrom prop. (P37). Therefore, by\nthe equality-commutativity\ninference rule: ((x1 = y1) |-\n(y1 = x1)), it follows that\n((((((0)++)++)++)++)++ = 5). QED"}, {"color": "#FFF59D", "id": "P39", "label": "P39 : ((4)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P39): ((4)++ =\n5). Proof:\n((((((0)++)++)++)++)++ = 5)\nfollows from prop. (P38).\n(((((0)++)++)++)++ = 4) follows\nfrom prop. (P23).Therefore, by\nthe equal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((4)++ = 5). QED"}, {"color": "#FFF59D", "id": "P40", "label": "P40 : (5 = (4)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P40): (5 =\n(4)++). Proof: ((4)++ = 5)\nfollows from prop. (P39).\nTherefore, by the equality-\ncommutativity inference rule:\n((x1 = y1) |- (y1 = x1)), it\nfollows that (5 = (4)++). QED"}, {"color": "#FFF59D", "id": "P41", "label": "P41 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e ((5)++ neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P41): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 5, m1 =\n1.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that\n((((5 is-a natural-number) and\n(1 is-a natural-number)) and (5\nneq 1)) ==\u003e ((5)++ neq (1)++)).\nQED"}, {"color": "#FFF59D", "id": "P42", "label": "P42 : ((4 is-a\nnatural-number) ==\u003e\n((4)++ is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P42): ((4 is-a\nnatural-number) ==\u003e ((4)++ is-a\nnatural-number)). Proof: ((n1\nis-a natural-number) ==\u003e ((n1)++\nis-a natural-number)) follows\nfrom prop. (P2). Let n1 =\n4.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that ((4\nis-a natural-number) ==\u003e ((4)++\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P43", "label": "P43 : ((4 is-a\nnatural-number) ==\u003e\n(5 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P43): ((4 is-a\nnatural-number) ==\u003e (5 is-a\nnatural-number)). Proof: ((4\nis-a natural-number) ==\u003e ((4)++\nis-a natural-number)) follows\nfrom prop. (P42). ((4)++ = 5)\nfollows from prop.\n(P39).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((4 is-a\nnatural-number) ==\u003e (5 is-a\nnatural-number)). QED"}, {"color": "#FFF59D", "id": "P44", "label": "P44 : (5 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P44): (5 is-a\nnatural-number). Proof: ((4 is-a\nnatural-number) ==\u003e (5 is-a\nnatural-number)) follows from\nprop. (P43).(4 is-a natural-\nnumber) follows from prop.\n(P26).Therefore, by the modus-\nponens inference rule: (((P1 ==\u003e\nP1) , P1) |- Q1), it follows\nthat (5 is-a natural-number).\nQED"}, {"color": "#FFF59D", "id": "P45", "label": "P45 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e ((5)++ neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P45): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)). Proof:\n((((n3 is-a natural-number) and\n(m1 is-a natural-number)) and\n(n3 neq m1)) ==\u003e ((n3)++ neq\n(m1)++)) follows from prop.\n(P31). Let n3 = 5, m1 =\n1.Therefore, by the variable-\nsubstitution inference rule: (P,\nPhi) |- P\u0027, it follows that\n((((5 is-a natural-number) and\n(1 is-a natural-number)) and (5\nneq 1)) ==\u003e ((5)++ neq (1)++)).\nQED"}, {"color": "#FFF59D", "id": "P46", "label": "P46 : ((4)++ neq\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P46): ((4)++ neq\n(0)++). Proof: ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\n==\u003e ((4)++ neq (0)++)) follows\nfrom prop. (P33).(((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and (4 neq 0))\nfollows from prop.\n(P35).Therefore, by the modus-\nponens inference rule: (((P1 ==\u003e\nP1) , P1) |- Q1), it follows\nthat ((4)++ neq (0)++). QED"}, {"color": "#FFF59D", "id": "P47", "label": "P47 : (5 neq (0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P47): (5 neq\n(0)++). Proof: ((4)++ neq (0)++)\nfollows from prop. (P46). ((4)++\n= 5) follows from prop.\n(P39).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (5 neq (0)++).\nQED"}, {"color": "#FFF59D", "id": "P48", "label": "P48 : (6 = ((((((0)+\n+)++)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P48): (6 =\n((((((0)++)++)++)++)++)++).\nProof: \"We define 1 to be the\nnumber 0++, 2 to be the number\n(0++)++, 3 to be the number\n((0++)++)++,etc. (In other\nwords, 1 := 0++, 2 := 1++, 3 :=\n2++, etc. In this text I use \"x\n:= y\" to denote the statement\nthat x is defined to equal y.)\"\nis postulated by def. (D1). (6 =\n((((((0)++)++)++)++)++)++) is an\ninterpretation of that\ndefinition.Therefore, by the\ndefinition-interpretation\ninference rule: \ud835\udc9f \u22a2 P, it\nfollows that (6 =\n((((((0)++)++)++)++)++)++). QED"}, {"color": "#FFF59D", "id": "P49", "label": "P49 : (((((((0)++)++\n)++)++)++)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P49):\n(((((((0)++)++)++)++)++)++ = 6).\nProof: (6 =\n((((((0)++)++)++)++)++)++)\nfollows from prop. (P48).\nTherefore, by the equality-\ncommutativity inference rule:\n((x1 = y1) |- (y1 = x1)), it\nfollows that\n(((((((0)++)++)++)++)++)++ = 6).\nQED"}, {"color": "#FFF59D", "id": "P50", "label": "P50 : (1 is-a\nnatural-number)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P50): (1 is-a\nnatural-number). Proof: ((0)++\nis-a natural-number) follows\nfrom prop. 2.2.3 (P4). ((0)++ =\n1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (1 is-a natural-\nnumber). QED"}, {"color": "#FFF59D", "id": "P51", "label": "P51 : ((5)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P51): ((5)++ =\n6). Proof:\n(((((((0)++)++)++)++)++)++ = 6)\nfollows from prop. (P49).\n((((((0)++)++)++)++)++ = 5)\nfollows from prop.\n(P38).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((5)++ = 6). QED"}, {"color": "#FFF59D", "id": "P52", "label": "P52 : (6 = (5)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P52): (6 =\n(5)++). Proof: ((5)++ = 6)\nfollows from prop. (P51).\nTherefore, by the equality-\ncommutativity inference rule:\n((x1 = y1) |- (y1 = x1)), it\nfollows that (6 = (5)++). QED"}, {"color": "#FFF59D", "id": "P66", "label": "P66 : Inc(H1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P66): Inc(H1).\nProof: Let (P = Q) := (4 = 0)\nfollows from prop. (P65). Let (P\nneq Q)) := (4 neq 0) follows\nfrom prop. 2.1.6 (P30).\nTherefore, by the inconsistency-\nintroduction-2 inference rule:\n((P = Q), (P neq Q)) |- Inc(T),\nit follows that Inc(H1). QED"}, {"color": "#FFF59D", "id": "P65", "label": "P65 : (4 = 0)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P65): (4 = 0).\nProof: ((((4 is-a natural-\nnumber) and (0 is-a natural-\nnumber)) and ((4)++ = (0)++))\n==\u003e (4 = 0)) follows from prop.\n(P64).(((4 is-a natural-number)\nand (0 is-a natural-number)) and\n((4)++ = (0)++)) follows from\nprop. (P63).Therefore, by the\nmodus-ponens inference rule:\n(((P1 ==\u003e P1) , P1) |- Q1), it\nfollows that (4 = 0). QED"}, {"color": "#FFF59D", "id": "P64", "label": "P64 : ((((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and ((4)++\n= (0)++)) ==\u003e (4 =\n0))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P64): ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)) ==\u003e (4 = 0)). Proof:\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) follows from prop. (P32).\nLet n4 = 4, m2 = 0.Therefore, by\nthe variable-substitution\ninference rule: (P, Phi) |- P\u0027,\nit follows that ((((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)) ==\u003e (4 = 0)). QED"}, {"color": "#FFF59D", "id": "P63", "label": "P63 : (((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber)) and ((4)++\n= (0)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P63): (((4 is-a\nnatural-number) and (0 is-a\nnatural-number)) and ((4)++ =\n(0)++)). Proof: ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)), of the form\nP3, follows from prop. (P62).\n((4)++ = (0)++), of the form Q3,\nfollows from prop. (P61).\nTherefore, by the conjunction-\nintroduction inference rule:\n((P3 , Q3) |- (P3 and Q3)), it\nfollows that (((4 is-a natural-\nnumber) and (0 is-a natural-\nnumber)) and ((4)++ = (0)++)).\nQED"}, {"color": "#FFF59D", "id": "P62", "label": "P62 : ((4 is-a\nnatural-number) and\n(0 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P62): ((4 is-a\nnatural-number) and (0 is-a\nnatural-number)). Proof: (4 is-a\nnatural-number), of the form P3,\nfollows from prop. (P26). (0\nis-a natural-number), of the\nform Q3, follows from prop.\n(P1). Therefore, by the\nconjunction-introduction\ninference rule: ((P3 , Q3) |-\n(P3 and Q3)), it follows that\n((4 is-a natural-number) and (0\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P61", "label": "P61 : ((4)++ =\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P61): ((4)++ =\n(0)++). Proof: ((4)++ = 1)\nfollows from prop. (P60). (1 =\n(0)++) follows from prop.\n(P5).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((4)++ = (0)++).\nQED"}, {"color": "#FFF59D", "id": "P60", "label": "P60 : ((4)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P60): ((4)++ =\n1). Proof: (5 = 1) follows from\nprop. (P59). (5 = (4)++) follows\nfrom prop. (P40).Therefore, by\nthe equal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((4)++ = 1). QED"}, {"color": "#FFF59D", "id": "P59", "label": "P59 : (5 = 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P59): (5 = 1).\nProof: ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and ((5)++ = (1)++))\n==\u003e (5 = 1)) follows from prop.\n(P58).(((5 is-a natural-number)\nand (1 is-a natural-number)) and\n((5)++ = (1)++)) follows from\nprop. (P57).Therefore, by the\nmodus-ponens inference rule:\n(((P1 ==\u003e P1) , P1) |- Q1), it\nfollows that (5 = 1). QED"}, {"color": "#FFF59D", "id": "P58", "label": "P58 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and ((5)++\n= (1)++)) ==\u003e (5 =\n1))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P58): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)) ==\u003e (5 = 1)). Proof:\n((((n4 is-a natural-number) and\n(m2 is-a natural-number)) and\n((n4)++ = (m2)++)) ==\u003e (n4 =\nm2)) follows from prop. (P32).\nLet n4 = 5, m2 = 1.Therefore, by\nthe variable-substitution\ninference rule: (P, Phi) |- P\u0027,\nit follows that ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)) ==\u003e (5 = 1)). QED"}, {"color": "#FFF59D", "id": "P57", "label": "P57 : (((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and ((5)++\n= (1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P57): (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and ((5)++ =\n(1)++)). Proof: ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)), of the form\nP3, follows from prop. (P56).\n((5)++ = (1)++), of the form Q3,\nfollows from prop. (P55).\nTherefore, by the conjunction-\nintroduction inference rule:\n((P3 , Q3) |- (P3 and Q3)), it\nfollows that (((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and ((5)++ = (1)++)).\nQED"}, {"color": "#FFF59D", "id": "P56", "label": "P56 : ((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P56): ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). Proof: (5 is-a\nnatural-number), of the form P3,\nfollows from prop. (P44). (1\nis-a natural-number), of the\nform Q3, follows from prop.\n(P50). Therefore, by the\nconjunction-introduction\ninference rule: ((P3 , Q3) |-\n(P3 and Q3)), it follows that\n((5 is-a natural-number) and (1\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P55", "label": "P55 : ((5)++ =\n(1)++)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P55): ((5)++ =\n(1)++). Proof: ((5)++ = 2)\nfollows from prop. (P54). (2 =\n(1)++) follows from prop.\n(P16).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((5)++ = (1)++).\nQED"}, {"color": "#FFF59D", "id": "P54", "label": "P54 : ((5)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P54): ((5)++ =\n2). Proof: (6 = 2) follows from\nprop. (P53). (6 = (5)++) follows\nfrom prop. (P52).Therefore, by\nthe equal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((5)++ = 2). QED"}, {"color": "#FFF59D", "id": "P53", "label": "P53 : (6 = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (H1.P53): (6 = 2).\nProof: \"By hypothesis, assume (6\n= 2) is true.\" is postulated by\naxiom (A5). (6 = 2) is a valid\nformula statement interpreted\nfrom that axiom.Therefore, by\nthe axiom-interpretation\ninference rule: A |- P, it\nfollows that (6 = 2). QED"}, {"color": "#81C784", "id": "A5", "label": "A5 : \"By hypothesis,\nassume (6 = 2) is\ntrue.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P67", "label": "P67 (2.1.8) : (6 neq\n2)", "labelHighlightBold": true, "shape": "box", "title": "Proposition 2.1.8 (T1.P67): (6\nneq 2). Proof: Let hyp. (H1) be\nthe hypothesis (6 = 2). Inc(H1)\nfollows from prop.\n(P66).Therefore, by the proof-\nby-refutation-2 inference rule:\n(\ud835\udcd7 \ud835\udc4e\ud835\udc60\ud835\udc60\ud835\udc62\ud835\udc5a\ud835\udc52 (\ud835\udc77 = \ud835\udc78), \ud835\udc3c\ud835\udc5b\ud835\udc50(\ud835\udcd7)) \u22a2 (\ud835\udc77\n\u2260 \ud835\udc78), it follows that (6 neq 2).\nQED"}, {"color": "#FFF59D", "id": "P68", "label": "P68 : ((1)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P68): ((1)++ =\n2). Proof: (((0)++)++ = 2)\nfollows from prop. (P17). ((0)++\n= 1) follows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((1)++ = 2). QED"}, {"color": "#FFF59D", "id": "P69", "label": "P69 : (5 neq 1)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P69): (5 neq 1).\nProof: (5 neq (0)++) follows\nfrom prop. (P47). ((0)++ = 1)\nfollows from prop.\n(P15).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that (5 neq 1). QED"}, {"color": "#FFF59D", "id": "P70", "label": "P70 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e (6 neq\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P70): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq (1)++)). Proof: ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e ((5)++ neq (1)++)) follows\nfrom prop. (P45). ((5)++ = 6)\nfollows from prop.\n(P51).Therefore, by the equal-\nterms-substitution inference\nrule: ((P2 , (x2 = y2)) |- Q2),\nit follows that ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq (1)++)). QED"}, {"color": "#FFF59D", "id": "P71", "label": "P71 : ((((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1)) ==\u003e (6 neq 2))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P71): ((((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq 2)). Proof: ((((5\nis-a natural-number) and (1 is-a\nnatural-number)) and (5 neq 1))\n==\u003e (6 neq (1)++)) follows from\nprop. (P70). ((1)++ = 2) follows\nfrom prop. (P68).Therefore, by\nthe equal-terms-substitution\ninference rule: ((P2 , (x2 =\ny2)) |- Q2), it follows that\n((((5 is-a natural-number) and\n(1 is-a natural-number)) and (5\nneq 1)) ==\u003e (6 neq 2)). QED"}, {"color": "#FFF59D", "id": "P72", "label": "P72 : ((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P72): ((5 is-a\nnatural-number) and (1 is-a\nnatural-number)). Proof: (5 is-a\nnatural-number), of the form P3,\nfollows from prop. (P44). (1\nis-a natural-number), of the\nform Q3, follows from prop.\n(P50). Therefore, by the\nconjunction-introduction\ninference rule: ((P3 , Q3) |-\n(P3 and Q3)), it follows that\n((5 is-a natural-number) and (1\nis-a natural-number)). QED"}, {"color": "#FFF59D", "id": "P73", "label": "P73 : (((5 is-a\nnatural-number) and\n(1 is-a natural-\nnumber)) and (5 neq\n1))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P73): (((5 is-a\nnatural-number) and (1 is-a\nnatural-number)) and (5 neq 1)).\nProof: ((5 is-a natural-number)\nand (1 is-a natural-number)), of\nthe form P3, follows from prop.\n(P72). (5 neq 1), of the form\nQ3, follows from prop. (P69).\nTherefore, by the conjunction-\nintroduction inference rule:\n((P3 , Q3) |- (P3 and Q3)), it\nfollows that (((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and (5 neq 1)). QED"}, {"color": "#FFF59D", "id": "P74", "label": "P74 : (6 neq 2)", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P74): (6 neq 2).\nProof: ((((5 is-a natural-\nnumber) and (1 is-a natural-\nnumber)) and (5 neq 1)) ==\u003e (6\nneq 2)) follows from prop.\n(P71).(((5 is-a natural-number)\nand (1 is-a natural-number)) and\n(5 neq 1)) follows from prop.\n(P73).Therefore, by the modus-\nponens inference rule: (((P1 ==\u003e\nP1) , P1) |- Q1), it follows\nthat (6 neq 2). QED"}, {"color": "#81C784", "id": "A6", "label": "A6 : \"Let P(n) be\nany property\npertaining to a\nnatural number n.\nSuppose that P(O) is\ntrue, and suppose\nthat whenever P(n)\nis true, P(n++) is\nalso true. Then P(n)\nis true for every\nnatural number n.\"", "shape": "box"}, {"color": "#FFF59D", "id": "P75", "label": "P75 : (((n5 is-a\nnatural-number) and\n(P4(0) and (P4(n5)\n==\u003e P4((n5)++))))\n==\u003e ((m3 is-a\nnatural-number) ==\u003e\nP4(m3)))", "labelHighlightBold": false, "shape": "box", "title": "Proposition (T1.P75): (((n5 is-a\nnatural-number) and (P4(0) and\n(P4(n5) ==\u003e P4((n5)++)))) ==\u003e\n((m3 is-a natural-number) ==\u003e\nP4(m3))). Proof: \"Let P(n) be\nany property pertaining to a\nnatural number n. Suppose that\nP(O) is true, and suppose that\nwhenever P(n) is true, P(n++) is\nalso true. Then P(n) is true for\nevery natural number n.\" is\npostulated by axiom schema (A6).\n(((n5 is-a natural-number) and\n(P4(0) and (P4(n5) ==\u003e\nP4((n5)++)))) ==\u003e ((m3 is-a\nnatural-number) ==\u003e P4(m3))) is\na valid formula statement\ninterpreted from that\naxiom.Therefore, by the axiom-\ninterpretation inference rule: A\n|- P, it follows that (((n5 is-a\nnatural-number) and (P4(0) and\n(P4(n5) ==\u003e P4((n5)++)))) ==\u003e\n((m3 is-a natural-number) ==\u003e\nP4(m3))). QED"}]); edges = new vis.DataSet([{"arrows": "to", "from": "A1", "to": "P1"}, {"arrows": "to", "from": "A2", "to": "P2"}, {"arrows": "to", "from": "P2", "to": "P3"}, {"arrows": "to", "from": "P3", "to": "P4"}, {"arrows": "to", "from": "P1", "to": "P4"}, {"arrows": "to", "from": "D1", "to": "P5"}, {"arrows": "to", "from": "D1", "to": "P6"}, {"arrows": "to", "from": "D1", "to": "P7"}, {"arrows": "to", "from": "D1", "to": "P8"}, {"arrows": "to", "from": "P2", "to": "P9"}, {"arrows": "to", "from": "P9", "to": "P10"}, {"arrows": "to", "from": "P4", "to": "P10"}, {"arrows": "to", "from": "P2", "to": "P11"}, {"arrows": "to", "from": "P11", "to": "P12"}, {"arrows": "to", "from": "P10", "to": "P12"}, {"arrows": "to", "from": "P2", "to": "P13"}, {"arrows": "to", "from": "P13", "to": "P14"}, {"arrows": "to", "from": "P12", "to": "P14"}, {"arrows": "to", "from": "P5", "to": "P15"}, {"arrows": "to", "from": "P6", "to": "P16"}, {"arrows": "to", "from": "P15", "to": "P16"}, {"arrows": "to", "from": "P6", "to": "P17"}, {"arrows": "to", "from": "P7", "to": "P18"}, {"arrows": "to", "from": "P17", "to": "P18"}, {"arrows": "to", "from": "P7", "to": "P19"}, {"arrows": "to", "from": "P19", "to": "P20"}, {"arrows": "to", "from": "P17", "to": "P20"}, {"arrows": "to", "from": "P12", "to": "P21"}, {"arrows": "to", "from": "P19", "to": "P21"}, {"arrows": "to", "from": "D1", "to": "P22"}, {"arrows": "to", "from": "P8", "to": "P23"}, {"arrows": "to", "from": "P23", "to": "P24"}, {"arrows": "to", "from": "P19", "to": "P24"}, {"arrows": "to", "from": "P13", "to": "P25"}, {"arrows": "to", "from": "P24", "to": "P25"}, {"arrows": "to", "from": "P14", "to": "P26"}, {"arrows": "to", "from": "P23", "to": "P26"}, {"arrows": "to", "from": "A3", "to": "P27"}, {"arrows": "to", "from": "P27", "to": "P28"}, {"arrows": "to", "from": "P28", "to": "P29"}, {"arrows": "to", "from": "P21", "to": "P29"}, {"arrows": "to", "from": "P29", "to": "P30"}, {"arrows": "to", "from": "P24", "to": "P30"}, {"arrows": "to", "from": "A4", "to": "P31"}, {"arrows": "to", "from": "A4", "to": "P32"}, {"arrows": "to", "from": "P31", "to": "P33"}, {"arrows": "to", "from": "P26", "to": "P34"}, {"arrows": "to", "from": "P1", "to": "P34"}, {"arrows": "to", "from": "P34", "to": "P35"}, {"arrows": "to", "from": "P30", "to": "P35"}, {"arrows": "to", "from": "P33", "to": "P36"}, {"arrows": "to", "from": "P35", "to": "P36"}, {"arrows": "to", "from": "D1", "to": "P37"}, {"arrows": "to", "from": "P37", "to": "P38"}, {"arrows": "to", "from": "P38", "to": "P39"}, {"arrows": "to", "from": "P23", "to": "P39"}, {"arrows": "to", "from": "P39", "to": "P40"}, {"arrows": "to", "from": "P31", "to": "P41"}, {"arrows": "to", "from": "P2", "to": "P42"}, {"arrows": "to", "from": "P42", "to": "P43"}, {"arrows": "to", "from": "P39", "to": "P43"}, {"arrows": "to", "from": "P43", "to": "P44"}, {"arrows": "to", "from": "P26", "to": "P44"}, {"arrows": "to", "from": "P31", "to": "P45"}, {"arrows": "to", "from": "P33", "to": "P46"}, {"arrows": "to", "from": "P35", "to": "P46"}, {"arrows": "to", "from": "P46", "to": "P47"}, {"arrows": "to", "from": "P39", "to": "P47"}, {"arrows": "to", "from": "D1", "to": "P48"}, {"arrows": "to", "from": "P48", "to": "P49"}, {"arrows": "to", "from": "P4", "to": "P50"}, {"arrows": "to", "from": "P15", "to": "P50"}, {"arrows": "to", "from": "P49", "to": "P51"}, {"arrows": "to", "from": "P38", "to": "P51"}, {"arrows": "to", "from": "P51", "to": "P52"}, {"arrows": "to", "from": "P32", "to": "P64"}, {"arrows": "to", "from": "P64", "to": "P65"}, {"arrows": "to", "from": "P26", "to": "P62"}, {"arrows": "to", "from": "P1", "to": "P62"}, {"arrows": "to", "from": "P62", "to": "P63"}, {"arrows": "to", "from": "P32", "to": "P58"}, {"arrows": "to", "from": "P58", "to": "P59"}, {"arrows": "to", "from": "P44", "to": "P56"}, {"arrows": "to", "from": "P50", "to": "P56"}, {"arrows": "to", "from": "P56", "to": "P57"}, {"arrows": "to", "from": "A5", "to": "P53"}, {"arrows": "to", "from": "P53", "to": "P54"}, {"arrows": "to", "from": "P52", "to": "P54"}, {"arrows": "to", "from": "P54", "to": "P55"}, {"arrows": "to", "from": "P16", "to": "P55"}, {"arrows": "to", "from": "P55", "to": "P57"}, {"arrows": "to", "from": "P57", "to": "P59"}, {"arrows": "to", "from": "P59", "to": "P60"}, {"arrows": "to", "from": "P40", "to": "P60"}, {"arrows": "to", "from": "P60", "to": "P61"}, {"arrows": "to", "from": "P5", "to": "P61"}, {"arrows": "to", "from": "P61", "to": "P63"}, {"arrows": "to", "from": "P63", "to": "P65"}, {"arrows": "to", "from": "P65", "to": "P66"}, {"arrows": "to", "from": "P30", "to": "P66"}, {"arrows": "to", "from": "P66", "to": "P67"}, {"arrows": "to", "from": "P17", "to": "P68"}, {"arrows": "to", "from": "P15", "to": "P68"}, {"arrows": "to", "from": "P47", "to": "P69"}, {"arrows": "to", "from": "P15", "to": "P69"}, {"arrows": "to", "from": "P45", "to": "P70"}, {"arrows": "to", "from": "P51", "to": "P70"}, {"arrows": "to", "from": "P70", "to": "P71"}, {"arrows": "to", "from": "P68", "to": "P71"}, {"arrows": "to", "from": "P44", "to": "P72"}, {"arrows": "to", "from": "P50", "to": "P72"}, {"arrows": "to", "from": "P72", "to": "P73"}, {"arrows": "to", "from": "P69", "to": "P73"}, {"arrows": "to", "from": "P71", "to": "P74"}, {"arrows": "to", "from": "P73", "to": "P74"}, {"arrows": "to", "from": "A6", "to": "P75"}]); nodeColors = {}; diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_unicode.html b/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_unicode.html index a4a233c8..e03ab981 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_unicode.html +++ b/theory/build/tao_2006_2_1_the_peano_axioms_interactive_graph_unicode.html @@ -88,7 +88,7 @@

// parsing and collecting nodes and edges from the python - nodes = new vis.DataSet([{"color": "#81C784", "id": "A1", "label": "\ud835\udc34\u2081 (\ud835\udfee.\ud835\udfed) : \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P1", "label": "\ud835\udc43\u2081 : (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081): (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfed (\ud835\udc34\u2081). (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#81C784", "id": "A2", "label": "\ud835\udc34\u2082 (\ud835\udfee.\ud835\udfee) : \u231c\ud835\ude10\ud835\ude27 \ud835\ude2f \ud835\ude2a\ud835\ude34\n\ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33,\n\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P2", "label": "\ud835\udc43\u2082 : ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082): ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude10\ud835\ude27 \ud835\ude2f\n\ud835\ude2a\ud835\ude34 \ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \ud835\ude2a\ud835\ude34\n\ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfee (\ud835\udc34\u2082). ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P3", "label": "\ud835\udc43\u2083 : ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083): ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P4", "label": "\ud835\udc43\u2084 (\ud835\udfee.\ud835\udfee.\ud835\udfef) : ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udcaf\u2081.\ud835\udc43\u2084):\n((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083).(0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#90CAF9", "id": "D1", "label": "\ud835\udc37\u2081 : \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n(\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 :=\n\ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\"\n\ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d\n\ud835\ude3a.)\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P5", "label": "\ud835\udc43\u2085 : (1 = (0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085): (1 =\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++,\n\ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10\n\ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (1 = (0)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (1 = (0)++). \u220e"}, {"color": "#FFF59D", "id": "P6", "label": "\ud835\udc43\u2086 : (2 = ((0)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086): (2 =\n((0)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26\n\ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++,\n\ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10\n\ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (2 = ((0)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (2 = ((0)++)++). \u220e"}, {"color": "#FFF59D", "id": "P7", "label": "\ud835\udc43\u2087 : (3 =\n(((0)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087): (3 =\n(((0)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (3 = (((0)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 =\n(((0)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P8", "label": "\ud835\udc43\u2088 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2088): (4 =\n((((0)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (4 = ((((0)++)++)++)++) \ud835\uddc2\ud835\uddcc\n\ud835\uddba\ud835\uddc7 \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 =\n((((0)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P9", "label": "\ud835\udc43\u2089 : (((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2089): (((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n(0)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, \ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P10", "label": "\ud835\udc43\u2081\u2080 : (((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2080): (((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2089).((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udc43\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe,\n\ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P \u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P11", "label": "\ud835\udc43\u2081\u2081 : ((((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2081):\n((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n((0)++)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, \ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P12", "label": "\ud835\udc43\u2081\u2082 : ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2082):\n((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2081).(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P13", "label": "\ud835\udc43\u2081\u2083 :\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2083):\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081\n= (((0)++)++)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, \ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P14", "label": "\ud835\udc43\u2081\u2084 :\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2084):\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2083).((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2082).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P15", "label": "\ud835\udc43\u2081\u2085 : ((0)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2085): ((0)++ =\n1). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (1 = (0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x = y) \u22a2 (y =\nx), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((0)++ = 1).\n\u220e"}, {"color": "#FFF59D", "id": "P16", "label": "\ud835\udc43\u2081\u2086 : (2 = (1)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2086): (2 =\n(1)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (2 = ((0)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086). ((0)++\n= 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (2 = (1)++). \u220e"}, {"color": "#FFF59D", "id": "P17", "label": "\ud835\udc43\u2081\u2087 : (((0)++)++ =\n2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2087): (((0)++)++\n= 2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (2 = ((0)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x\n= y) \u22a2 (y = x), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((0)++)++ = 2). \u220e"}, {"color": "#FFF59D", "id": "P18", "label": "\ud835\udc43\u2081\u2088 : (3 = (2)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2088): (3 =\n(2)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (3 =\n(((0)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087). (((0)++)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 = (2)++). \u220e"}, {"color": "#FFF59D", "id": "P19", "label": "\ud835\udc43\u2081\u2089 : ((((0)++)++)++\n= 3)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2089):\n((((0)++)++)++ = 3). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (3 =\n(((0)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x = y) \u22a2 (y = x), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((0)++)++)++ =\n3). \u220e"}, {"color": "#FFF59D", "id": "P20", "label": "\ud835\udc43\u2082\u2080 : ((2)++ = 3)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2080): ((2)++ =\n3). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((0)++)++)++ = 3)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2089).\n(((0)++)++ = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((2)++ = 3).\n\u220e"}, {"color": "#FFF59D", "id": "P21", "label": "\ud835\udc43\u2082\u2081 (\ud835\udfee.\ud835\udfed.\ud835\udff0) : (3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff0 (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2081): (3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2082). ((((0)++)++)++ = 3)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P22", "label": "\ud835\udc43\u2082\u2082 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2082): (4 =\n((((0)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (4 = ((((0)++)++)++)++) \ud835\uddc2\ud835\uddcc\n\ud835\uddba\ud835\uddc7 \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 =\n((((0)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P23", "label": "\ud835\udc43\u2082\u2083 :\n(((((0)++)++)++)++ =\n4)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2083):\n(((((0)++)++)++)++ = 4). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(4 = ((((0)++)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2088). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x = y) \u22a2 (y =\nx), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((((0)++)++)++)++ = 4). \u220e"}, {"color": "#FFF59D", "id": "P24", "label": "\ud835\udc43\u2082\u2084 : ((3)++ = 4)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2084): ((3)++ =\n4). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((((0)++)++)++)++ =\n4) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2083).\n((((0)++)++)++ = 3) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((3)++ = 4).\n\u220e"}, {"color": "#FFF59D", "id": "P25", "label": "\ud835\udc43\u2082\u2085 :\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2085):\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2083). ((3)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P26", "label": "\ud835\udc43\u2082\u2086 : (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2086): (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2084). (((((0)++)++)++)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#81C784", "id": "A3", "label": "\ud835\udc34\u2083 (\ud835\udfee.\ud835\udfef) : \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude2f\ud835\ude30\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33 \ud835\ude30\ud835\ude27 \ud835\ude22\ud835\ude2f\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33;\n\ud835\ude2a.\ud835\ude26., \ud835\ude38\ud835\ude26 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f++ \u2260\n\ud835\udfe2 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P27", "label": "\ud835\udc43\u2082\u2087 : ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2082)++ \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2087): ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude2f\ud835\ude30\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\n\ud835\ude30\ud835\ude27 \ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33; \ud835\ude2a.\ud835\ude26., \ud835\ude38\ud835\ude26\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f++ \u2260 \ud835\udfe2 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2\n\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfef (\ud835\udc34\u2083). ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 P, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0)).\n\u220e"}, {"color": "#FFF59D", "id": "P28", "label": "\ud835\udc43\u2082\u2088 : ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((3)++ \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2088): ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((\ud835\udc27\u2082)++ \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2087). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2082 =\n3.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260\n0)). \u220e"}, {"color": "#FFF59D", "id": "P29", "label": "\ud835\udc43\u2082\u2089 : ((3)++ \u2260 0)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2089): ((3)++ \u2260\n0). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2088).(3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff0 (\ud835\udc43\u2082\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((P \u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((3)++ \u2260 0). \u220e"}, {"color": "#FFF59D", "id": "P30", "label": "\ud835\udc43\u2083\u2080 (\ud835\udfee.\ud835\udfed.\ud835\udff2) : (4 \u2260\n0)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff2 (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2080): (4 \u2260\n0). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((3)++ \u2260 0) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2089). ((3)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 \u2260 0). \u220e"}, {"color": "#81C784", "id": "A4", "label": "\ud835\udc34\u2084 (\ud835\udfee.\ud835\udff0) :\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26\n\ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26., \ud835\ude2a\ud835\ude27\n\ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude2f \u2260 \ud835\ude2e,\n\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++\n= \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P31", "label": "\ud835\udc43\u2083\u2081 : ((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260\n\ud835\udc26\u2081)) \u27f9 ((\ud835\udc27\u2083)++ \u2260\n(\ud835\udc26\u2081)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2081): ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26.,\n\ud835\ude2a\ud835\ude27 \ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25\n\ud835\ude2f \u2260 \ud835\ude2e, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++ = \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f\n\ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d \ud835\uddc2\ud835\uddcc\n\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udff0 (\ud835\udc34\u2084).\n((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083\n\u2260 \ud835\udc26\u2081)) \u27f9 ((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddc2\ud835\uddcc \ud835\uddba\n\ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 P, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)). \u220e"}, {"color": "#FFF59D", "id": "P32", "label": "\ud835\udc43\u2083\u2082 : ((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 =\n\ud835\udc26\u2082))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2082): ((((\ud835\udc27\u2084\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26.,\n\ud835\ude2a\ud835\ude27 \ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25\n\ud835\ude2f \u2260 \ud835\ude2e, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++ = \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f\n\ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d \ud835\uddc2\ud835\uddcc\n\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udff0 (\ud835\udc34\u2084).\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 P, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082)). \u220e"}, {"color": "#FFF59D", "id": "P33", "label": "\ud835\udc43\u2083\u2083 : ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0))\n\u27f9 ((4)++ \u2260 (0)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2083): ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 4, \ud835\udc26\u2081 =\n0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)). \u220e"}, {"color": "#FFF59D", "id": "P34", "label": "\ud835\udc43\u2083\u2084 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2084): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2086). (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P35", "label": "\ud835\udc43\u2083\u2085 : (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2085): (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) (\ud835\udc43)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2084). (4 \u2260\n0) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff2\n(\ud835\udc43\u2083\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)). \u220e"}, {"color": "#FFF59D", "id": "P36", "label": "\ud835\udc43\u2083\u2086 : ((4)++ \u2260\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2086): ((4)++ \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2083).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((4)++ \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P37", "label": "\ud835\udc43\u2083\u2087 : (5 = (((((0)++\n)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2087): (5 =\n(((((0)++)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n\ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++,\n\ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33\n\ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39\n:= \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d\n\ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3. (\ud835\udc37\u2081). (5 =\n(((((0)++)++)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 =\n(((((0)++)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P38", "label": "\ud835\udc43\u2083\u2088 : ((((((0)++)++)\n++)++)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2088):\n((((((0)++)++)++)++)++ = 5).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 =\n(((((0)++)++)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2087). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x = y) \u22a2 (y =\nx), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((((((0)++)++)++)++)++ = 5). \u220e"}, {"color": "#FFF59D", "id": "P39", "label": "\ud835\udc43\u2083\u2089 : ((4)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2089): ((4)++ =\n5). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((((0)++)++)++)++)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2088).\n(((((0)++)++)++)++ = 4) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ = 5).\n\u220e"}, {"color": "#FFF59D", "id": "P40", "label": "\ud835\udc43\u2084\u2080 : (5 = (4)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2080): (5 =\n(4)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2089).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x\n= y) \u22a2 (y = x), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(5 = (4)++). \u220e"}, {"color": "#FFF59D", "id": "P41", "label": "\ud835\udc43\u2084\u2081 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 ((5)++ \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2081): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 5, \ud835\udc26\u2081 =\n1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P42", "label": "\ud835\udc43\u2084\u2082 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((4)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2082): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n4.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P43", "label": "\ud835\udc43\u2084\u2083 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2083): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2082). ((4)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P44", "label": "\ud835\udc43\u2084\u2084 : (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2084): (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2083).(4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\n\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P \u27f9 Q),\nP) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P45", "label": "\ud835\udc43\u2084\u2085 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 ((5)++ \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2085): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 5, \ud835\udc26\u2081 =\n1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P,\n\ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P46", "label": "\ud835\udc43\u2084\u2086 : ((4)++ \u2260\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2086): ((4)++ \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2083).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((4)++ \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P47", "label": "\ud835\udc43\u2084\u2087 : (5 \u2260 (0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2087): (5 \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ \u2260 (0)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2086). ((4)++\n= 5) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P48", "label": "\ud835\udc43\u2084\u2088 : (6 = ((((((0)+\n+)++)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2088): (6 =\n((((((0)++)++)++)++)++)++).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n(\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33\n\ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39\n:= \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d\n\ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3. (\ud835\udc37\u2081). (6 =\n((((((0)++)++)++)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 =\n((((((0)++)++)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P49", "label": "\ud835\udc43\u2084\u2089 : (((((((0)++)++\n)++)++)++)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2089):\n(((((((0)++)++)++)++)++)++ = 6).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (6 =\n((((((0)++)++)++)++)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2088).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x\n= y) \u22a2 (y = x), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((((((0)++)++)++)++)++)++ = 6).\n\u220e"}, {"color": "#FFF59D", "id": "P50", "label": "\ud835\udc43\u2085\u2080 : (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2080): (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udc43\u2084). ((0)++ =\n1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P51", "label": "\ud835\udc43\u2085\u2081 : ((5)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2081): ((5)++ =\n6). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((((0)++)++)++)++)++)++ = 6)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2089).\n((((((0)++)++)++)++)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2088).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5)++ = 6). \u220e"}, {"color": "#FFF59D", "id": "P52", "label": "\ud835\udc43\u2085\u2082 : (6 = (5)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2082): (6 =\n(5)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5)++ = 6)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2081).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (x\n= y) \u22a2 (y = x), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(6 = (5)++). \u220e"}, {"color": "#FFF59D", "id": "P66", "label": "\ud835\udc43\u2086\u2086 : \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2086): \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (4 = 0) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2085). (4 \u2260 0) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff2 (\ud835\udc43\u2083\u2080).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc56\ud835\udc5b\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc60\ud835\udc56\ud835\udc60\ud835\udc61\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc66-\n\ud835\udc4f\ud835\udc66-\ud835\udc56\ud835\udc5b\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P = Q), (P \u2260\nQ)) \u22a2 Inc(\ud835\udcaf), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081). \u220e"}, {"color": "#FFF59D", "id": "P65", "label": "\ud835\udc43\u2086\u2085 : (4 = 0)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2085): (4 = 0).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ = (0)++)) \u27f9 (4\n= 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2084).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((4)++ = (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4\n= 0). \u220e"}, {"color": "#FFF59D", "id": "P64", "label": "\ud835\udc43\u2086\u2084 : ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)) \u27f9 (4 = 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2084): ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)) \u27f9 (4 = 0)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2084\n= 4, \ud835\udc26\u2082 = 0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, \ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((4)++ = (0)++)) \u27f9 (4 = 0)). \u220e"}, {"color": "#FFF59D", "id": "P63", "label": "\ud835\udc43\u2086\u2083 : (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2083): (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2082). ((4)++ =\n(0)++) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)). \u220e"}, {"color": "#FFF59D", "id": "P62", "label": "\ud835\udc43\u2086\u2082 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2082): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2086). (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P61", "label": "\ud835\udc43\u2086\u2081 : ((4)++ =\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2081): ((4)++ =\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ = 1)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2080). (1 =\n(0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ = (0)++). \u220e"}, {"color": "#FFF59D", "id": "P60", "label": "\ud835\udc43\u2086\u2080 : ((4)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2080): ((4)++ =\n1). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 = 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2089). (5 = (4)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ = 1).\n\u220e"}, {"color": "#FFF59D", "id": "P59", "label": "\ud835\udc43\u2085\u2089 : (5 = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2089): (5 = 1).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ = (1)++)) \u27f9 (5\n= 1)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2088).(((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((5)++ = (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P\n\u27f9 Q), P) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5\n= 1). \u220e"}, {"color": "#FFF59D", "id": "P58", "label": "\ud835\udc43\u2085\u2088 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)) \u27f9 (5 = 1))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2088): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)) \u27f9 (5 = 1)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2084\n= 5, \ud835\udc26\u2082 = 1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, \ud835\udef7) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((5)++ = (1)++)) \u27f9 (5 = 1)). \u220e"}, {"color": "#FFF59D", "id": "P57", "label": "\ud835\udc43\u2085\u2087 : (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2087): (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2086). ((5)++ =\n(1)++) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)). \u220e"}, {"color": "#FFF59D", "id": "P56", "label": "\ud835\udc43\u2085\u2086 : ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2086): ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2084). (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P55", "label": "\ud835\udc43\u2085\u2085 : ((5)++ =\n(1)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2085): ((5)++ =\n(1)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2084). (2 =\n(1)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5)++ = (1)++). \u220e"}, {"color": "#FFF59D", "id": "P54", "label": "\ud835\udc43\u2085\u2084 : ((5)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2084): ((5)++ =\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (6 = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2083). (6 = (5)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2082).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5)++ = 2).\n\u220e"}, {"color": "#FFF59D", "id": "P53", "label": "\ud835\udc43\u2085\u2083 : (6 = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2083): (6 = 2).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude09\ud835\ude3a \ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34, \ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26 (\ud835\udfe8\n= \ud835\udfe4) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2\n\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa (\ud835\udc34\u2085). (6 = 2) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 = 2). \u220e"}, {"color": "#81C784", "id": "A5", "label": "\ud835\udc34\u2085 : \u231c\ud835\ude09\ud835\ude3a \ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34,\n\ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26 (\ud835\udfe8 = \ud835\udfe4) \ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P67", "label": "\ud835\udc43\u2086\u2087 (\ud835\udfee.\ud835\udfed.\ud835\udff4) : (6 \u2260\n2)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff4 (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2087): (6 \u2260\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\uddf5\ud835\ude06\ud835\uddfd. (\ud835\udc3b\u2081) \ud835\uddbb\ud835\uddbe \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddc1\ud835\uddd2\ud835\uddc9\ud835\uddc8\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddcc (6 = 2). \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5d\ud835\udc5f\ud835\udc5c\ud835\udc5c\ud835\udc53-\n\ud835\udc4f\ud835\udc66-\ud835\udc5f\ud835\udc52\ud835\udc53\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc5c\ud835\udc53-\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\u210b(P=Q), Inc(\u210b))\n\u22a2 (P \u2260 Q), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 \u2260\n2). \u220e"}, {"color": "#FFF59D", "id": "P68", "label": "\ud835\udc43\u2086\u2088 : ((1)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2088): ((1)++ =\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((0)++)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2087). ((0)++\n= 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2 P\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((1)++ = 2). \u220e"}, {"color": "#FFF59D", "id": "P69", "label": "\ud835\udc43\u2086\u2089 : (5 \u2260 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2089): (5 \u2260 1).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \u2260 (0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2087). ((0)++ = 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 \u2260 1). \u220e"}, {"color": "#FFF59D", "id": "P70", "label": "\ud835\udc43\u2087\u2080 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2080): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2085). ((5)++ = 6) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P71", "label": "\ud835\udc43\u2087\u2081 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 2))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2081): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 2)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2087\u2080). ((1)++ = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2088).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, (Q = R)) \u22a2\nP\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 2)). \u220e"}, {"color": "#FFF59D", "id": "P72", "label": "\ud835\udc43\u2087\u2082 : ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2082): ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc43) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2084). (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P73", "label": "\ud835\udc43\u2087\u2083 : (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2083): (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) (\ud835\udc43)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087\u2082). (5 \u2260\n1) (\ud835\udc44) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (P, Q) \u22a2 (P \u22c0\nQ), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)). \u220e"}, {"color": "#FFF59D", "id": "P74", "label": "\ud835\udc43\u2087\u2084 : (6 \u2260 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2084): (6 \u2260 2).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6 \u2260 2))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087\u2081).(((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2087\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\n\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((P \u27f9 Q),\nP) \u22a2 Q, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 \u2260 2).\n\u220e"}, {"color": "#81C784", "id": "A6", "label": "\ud835\udc34\u2086 : \u231c\ud835\ude13\ud835\ude26\ud835\ude35 \ud835\ude17(\ud835\ude2f) \ud835\ude23\ud835\ude26\n\ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude3a\n\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude22\ud835\ude2a\ud835\ude2f\ud835\ude2a\ud835\ude2f\ud835\ude28 \ud835\ude35\ud835\ude30 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\n\ud835\ude1a\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude17(\ud835\ude16) \ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude34\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude38\ud835\ude29\ud835\ude26\ud835\ude2f\ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33 \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude17(\ud835\ude2f++) \ud835\ude2a\ud835\ude34\n\ud835\ude22\ud835\ude2d\ud835\ude34\ud835\ude30 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26. \ud835\ude1b\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P75", "label": "\ud835\udc43\u2087\u2085 : (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc0f\u2081(0) \u2227 (\ud835\udc0f\u2081(\ud835\udc27\u2085) \u27f9\n\ud835\udc0f\u2081((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 \ud835\udc0f\u2081(\ud835\udc26\u2083)))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2085): (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2081(0) \u2227\n(\ud835\udc0f\u2081(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2081((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2081(\ud835\udc26\u2083))).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude13\ud835\ude26\ud835\ude35 \ud835\ude17(\ud835\ude2f) \ud835\ude23\ud835\ude26 \ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude3a\n\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude22\ud835\ude2a\ud835\ude2f\ud835\ude2a\ud835\ude2f\ud835\ude28 \ud835\ude35\ud835\ude30 \ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n\ud835\ude2f. \ud835\ude1a\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude17(\ud835\ude16) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26,\n\ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude34\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude38\ud835\ude29\ud835\ude26\ud835\ude2f\ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33 \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude17(\ud835\ude2f++) \ud835\ude2a\ud835\ude34 \ud835\ude22\ud835\ude2d\ud835\ude34\ud835\ude30 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\n\ud835\ude1b\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude17(\ud835\ude2f) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\ude00\ud835\uddf0\ud835\uddf5\ud835\uddf2\ud835\uddfa\ud835\uddee (\ud835\udc34\u2086). (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2081(0) \u2227\n(\ud835\udc0f\u2081(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2081((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2081(\ud835\udc26\u2083)))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 P, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2081(0) \u2227\n(\ud835\udc0f\u2081(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2081((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2081(\ud835\udc26\u2083))).\n\u220e"}]); + nodes = new vis.DataSet([{"color": "#81C784", "id": "A1", "label": "\ud835\udc34\u2081 (\ud835\udfee.\ud835\udfed) : \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P1", "label": "\ud835\udc43\u2081 : (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081): (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfed (\ud835\udc34\u2081). (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#81C784", "id": "A2", "label": "\ud835\udc34\u2082 (\ud835\udfee.\ud835\udfee) : \u231c\ud835\ude10\ud835\ude27 \ud835\ude2f \ud835\ude2a\ud835\ude34\n\ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33,\n\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \ud835\ude2a\ud835\ude34 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P2", "label": "\ud835\udc43\u2082 : ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082): ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude10\ud835\ude27 \ud835\ude2f\n\ud835\ude2a\ud835\ude34 \ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \ud835\ude2a\ud835\ude34\n\ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfee (\ud835\udc34\u2082). ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P3", "label": "\ud835\udc43\u2083 : ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083): ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P4", "label": "\ud835\udc43\u2084 (\ud835\udfee.\ud835\udfee.\ud835\udfef) : ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udcaf\u2081.\ud835\udc43\u2084):\n((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083).(0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#90CAF9", "id": "D1", "label": "\ud835\udc37\u2081 : \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n(\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 :=\n\ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\"\n\ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d\n\ud835\ude3a.)\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P5", "label": "\ud835\udc43\u2085 : (1 = (0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085): (1 =\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++,\n\ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10\n\ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (1 = (0)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (1 = (0)++). \u220e"}, {"color": "#FFF59D", "id": "P6", "label": "\ud835\udc43\u2086 : (2 = ((0)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086): (2 =\n((0)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26\n\ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f\n\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++,\n\ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10\n\ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (2 = ((0)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (2 = ((0)++)++). \u220e"}, {"color": "#FFF59D", "id": "P7", "label": "\ud835\udc43\u2087 : (3 =\n(((0)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087): (3 =\n(((0)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (3 = (((0)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 =\n(((0)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P8", "label": "\ud835\udc43\u2088 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2088): (4 =\n((((0)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (4 = ((((0)++)++)++)++) \ud835\uddc2\ud835\uddcc\n\ud835\uddba\ud835\uddc7 \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 =\n((((0)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P9", "label": "\ud835\udc43\u2089 : (((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2089): (((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n(0)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf, \ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P10", "label": "\ud835\udc43\u2081\u2080 : (((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2080): (((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((0)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2089).((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udc43\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe,\n\ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P11", "label": "\ud835\udc43\u2081\u2081 : ((((0)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2081):\n((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n((0)++)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf, \ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P12", "label": "\ud835\udc43\u2081\u2082 : ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2082):\n((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2081).(((0)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P13", "label": "\ud835\udc43\u2081\u2083 :\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2083):\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((\ud835\udc27\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2081)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081\n= (((0)++)++)++.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf, \ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P14", "label": "\ud835\udc43\u2081\u2084 :\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2084):\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2083).((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2082).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P15", "label": "\ud835\udc43\u2081\u2085 : ((0)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2085): ((0)++ =\n1). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (1 = (0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081\n= \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((0)++ =\n1). \u220e"}, {"color": "#FFF59D", "id": "P16", "label": "\ud835\udc43\u2081\u2086 : (2 = (1)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2086): (2 =\n(1)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (2 = ((0)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086). ((0)++\n= 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (2 = (1)++). \u220e"}, {"color": "#FFF59D", "id": "P17", "label": "\ud835\udc43\u2081\u2087 : (((0)++)++ =\n2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2087): (((0)++)++\n= 2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (2 = ((0)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081 = \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((0)++)++ = 2). \u220e"}, {"color": "#FFF59D", "id": "P18", "label": "\ud835\udc43\u2081\u2088 : (3 = (2)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2088): (3 =\n(2)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (3 =\n(((0)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087). (((0)++)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 = (2)++). \u220e"}, {"color": "#FFF59D", "id": "P19", "label": "\ud835\udc43\u2081\u2089 : ((((0)++)++)++\n= 3)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2081\u2089):\n((((0)++)++)++ = 3). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (3 =\n(((0)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081 = \ud835\udc31\u2081)),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((0)++)++)++ =\n3). \u220e"}, {"color": "#FFF59D", "id": "P20", "label": "\ud835\udc43\u2082\u2080 : ((2)++ = 3)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2080): ((2)++ =\n3). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((0)++)++)++ = 3)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2089).\n(((0)++)++ = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((2)++ = 3). \u220e"}, {"color": "#FFF59D", "id": "P21", "label": "\ud835\udc43\u2082\u2081 (\ud835\udfee.\ud835\udfed.\ud835\udff0) : (3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff0 (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2081): (3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2082). ((((0)++)++)++ = 3)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (3 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P22", "label": "\ud835\udc43\u2082\u2082 : (4 =\n((((0)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2082): (4 =\n((((0)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26\n\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4\n\ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30\n\ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 ((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24.\n(\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33 \ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 :=\n\ud835\udfe3++, \ud835\udfe5 := \ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35\n\ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39 := \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30\n\ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3.\n(\ud835\udc37\u2081). (4 = ((((0)++)++)++)++) \ud835\uddc2\ud835\uddcc\n\ud835\uddba\ud835\uddc7 \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 =\n((((0)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P23", "label": "\ud835\udc43\u2082\u2083 :\n(((((0)++)++)++)++ =\n4)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2083):\n(((((0)++)++)++)++ = 4). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(4 = ((((0)++)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2088). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081\n= \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((((0)++)++)++)++ = 4). \u220e"}, {"color": "#FFF59D", "id": "P24", "label": "\ud835\udc43\u2082\u2084 : ((3)++ = 4)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2084): ((3)++ =\n4). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((((0)++)++)++)++ =\n4) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2083).\n((((0)++)++)++ = 3) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((3)++ = 4). \u220e"}, {"color": "#FFF59D", "id": "P25", "label": "\ud835\udc43\u2082\u2085 :\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2085):\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((0)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (((((0)++)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2083). ((3)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((((0)++)++)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P26", "label": "\ud835\udc43\u2082\u2086 : (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2086): (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((0)++)++)++)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2084). (((((0)++)++)++)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#81C784", "id": "A3", "label": "\ud835\udc34\u2083 (\ud835\udfee.\ud835\udfef) : \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude2f\ud835\ude30\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33 \ud835\ude30\ud835\ude27 \ud835\ude22\ud835\ude2f\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33;\n\ud835\ude2a.\ud835\ude26., \ud835\ude38\ud835\ude26 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f++ \u2260\n\ud835\udfe2 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P27", "label": "\ud835\udc43\u2082\u2087 : ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((\ud835\udc27\u2082)++ \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2087): ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\udfe2 \ud835\ude2a\ud835\ude34 \ud835\ude2f\ud835\ude30\ud835\ude35 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\n\ud835\ude30\ud835\ude27 \ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33; \ud835\ude2a.\ud835\ude26., \ud835\ude38\ud835\ude26\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f++ \u2260 \ud835\udfe2 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2\n\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udfef (\ud835\udc34\u2083). ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2082)++ \u2260 0)).\n\u220e"}, {"color": "#FFF59D", "id": "P28", "label": "\ud835\udc43\u2082\u2088 : ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((3)++ \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2088): ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 ((\ud835\udc27\u2082)++ \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2087). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2082 =\n3.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((3\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260\n0)). \u220e"}, {"color": "#FFF59D", "id": "P29", "label": "\ud835\udc43\u2082\u2089 : ((3)++ \u2260 0)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2082\u2089): ((3)++ \u2260\n0). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((3 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((3)++ \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2088).(3 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff0 (\ud835\udc43\u2082\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((3)++ \u2260 0). \u220e"}, {"color": "#FFF59D", "id": "P30", "label": "\ud835\udc43\u2083\u2080 (\ud835\udfee.\ud835\udfed.\ud835\udff2) : (4 \u2260\n0)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff2 (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2080): (4 \u2260\n0). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((3)++ \u2260 0) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2089). ((3)++ = 4)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2084).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 \u2260 0). \u220e"}, {"color": "#81C784", "id": "A4", "label": "\ud835\udc34\u2084 (\ud835\udfee.\ud835\udff0) :\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26\n\ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26., \ud835\ude2a\ud835\ude27\n\ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude2f \u2260 \ud835\ude2e,\n\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++\n= \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P31", "label": "\ud835\udc43\u2083\u2081 : ((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260\n\ud835\udc26\u2081)) \u27f9 ((\ud835\udc27\u2083)++ \u2260\n(\ud835\udc26\u2081)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2081): ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26.,\n\ud835\ude2a\ud835\ude27 \ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25\n\ud835\ude2f \u2260 \ud835\ude2e, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++ = \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f\n\ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d \ud835\uddc2\ud835\uddcc\n\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udff0 (\ud835\udc34\u2084).\n((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083\n\u2260 \ud835\udc26\u2081)) \u27f9 ((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddc2\ud835\uddcc \ud835\uddba\n\ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((\ud835\udc27\u2083 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)). \u220e"}, {"color": "#FFF59D", "id": "P32", "label": "\ud835\udc43\u2083\u2082 : ((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 =\n\ud835\udc26\u2082))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2082): ((((\ud835\udc27\u2084\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude0b\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35\n\ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude25\ud835\ude2a\ud835\ude27\ud835\ude27\ud835\ude26\ud835\ude33\ud835\ude26\ud835\ude2f\ud835\ude35 \ud835\ude34\ud835\ude36\ud835\ude24\ud835\ude24\ud835\ude26\ud835\ude34\ud835\ude34\ud835\ude30\ud835\ude33\ud835\ude34; \ud835\ude2a.\ud835\ude26.,\n\ud835\ude2a\ud835\ude27 \ud835\ude2f, \ud835\ude2e \ud835\ude22\ud835\ude33\ud835\ude26 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\ud835\ude34 \ud835\ude22\ud835\ude2f\ud835\ude25\n\ud835\ude2f \u2260 \ud835\ude2e, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude2f++ \u2260 \ud835\ude2e++.\n\ud835\ude0c\ud835\ude32\ud835\ude36\ud835\ude2a\ud835\ude37\ud835\ude22\ud835\ude2d\ud835\ude26\ud835\ude2f\ud835\ude35\ud835\ude2d\ud835\ude3a, \ud835\ude2a\ud835\ude27 \ud835\ude2f++ = \ud835\ude2e++, \ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude2f\n\ud835\ude38\ud835\ude26 \ud835\ude2e\ud835\ude36\ud835\ude34\ud835\ude35 \ud835\ude29\ud835\ude22\ud835\ude37\ud835\ude26 \ud835\ude2f = \ud835\ude2e.\u231d \ud835\uddc2\ud835\uddcc\n\ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\udfee.\ud835\udff0 (\ud835\udc34\u2084).\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((\ud835\udc27\u2084)++ =\n(\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082)). \u220e"}, {"color": "#FFF59D", "id": "P33", "label": "\ud835\udc43\u2083\u2083 : ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0))\n\u27f9 ((4)++ \u2260 (0)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2083): ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 4, \ud835\udc26\u2081 =\n0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)). \u220e"}, {"color": "#FFF59D", "id": "P34", "label": "\ud835\udc43\u2083\u2084 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2084): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2086). (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083\n\u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P35", "label": "\ud835\udc43\u2083\u2085 : (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2085): (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)), \ud835\uddc8\ud835\uddbf\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2084). (4 \u2260 0), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff2 (\ud835\udc43\u2083\u2080).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083 \u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)). \u220e"}, {"color": "#FFF59D", "id": "P36", "label": "\ud835\udc43\u2083\u2086 : ((4)++ \u2260\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2086): ((4)++ \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2083).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P37", "label": "\ud835\udc43\u2083\u2087 : (5 = (((((0)++\n)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2087): (5 =\n(((((0)++)++)++)++)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n\u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n\ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 (\ud835\udfe2++)++,\n\ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33\n\ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39\n:= \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d\n\ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3. (\ud835\udc37\u2081). (5 =\n(((((0)++)++)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 =\n(((((0)++)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P38", "label": "\ud835\udc43\u2083\u2088 : ((((((0)++)++)\n++)++)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2088):\n((((((0)++)++)++)++)++ = 5).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 =\n(((((0)++)++)++)++)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2087). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081\n= \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((((((0)++)++)++)++)++ = 5). \u220e"}, {"color": "#FFF59D", "id": "P39", "label": "\ud835\udc43\u2083\u2089 : ((4)++ = 5)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2083\u2089): ((4)++ =\n5). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((((0)++)++)++)++)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2088).\n(((((0)++)++)++)++ = 4) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((4)++ = 5). \u220e"}, {"color": "#FFF59D", "id": "P40", "label": "\ud835\udc43\u2084\u2080 : (5 = (4)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2080): (5 =\n(4)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2089).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081 = \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 = (4)++). \u220e"}, {"color": "#FFF59D", "id": "P41", "label": "\ud835\udc43\u2084\u2081 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 ((5)++ \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2081): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 5, \ud835\udc26\u2081 =\n1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P42", "label": "\ud835\udc43\u2084\u2082 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9\n((4)++ \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2082): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++ \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((\ud835\udc27\u2081\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((\ud835\udc27\u2081)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2081 =\n4.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P43", "label": "\ud835\udc43\u2084\u2083 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2083): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 ((4)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2082). ((4)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P44", "label": "\ud835\udc43\u2084\u2084 : (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2084): (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2083).(4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2082\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\n\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (((\ud835\udc0f\u2081 \u27f9\n\ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P45", "label": "\ud835\udc43\u2084\u2085 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 ((5)++ \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2085): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((\ud835\udc27\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc26\u2081 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (\ud835\udc27\u2083 \u2260 \ud835\udc26\u2081)) \u27f9\n((\ud835\udc27\u2083)++ \u2260 (\ud835\udc26\u2081)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2081). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2083 = 5, \ud835\udc26\u2081 =\n1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\n\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf,\n\ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P46", "label": "\ud835\udc43\u2084\u2086 : ((4)++ \u2260\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2086): ((4)++ \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \u27f9\n((4)++ \u2260 (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2083).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (4 \u2260 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P47", "label": "\ud835\udc43\u2084\u2087 : (5 \u2260 (0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2087): (5 \u2260\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ \u2260 (0)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2086). ((4)++\n= 5) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2089).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 \u2260 (0)++). \u220e"}, {"color": "#FFF59D", "id": "P48", "label": "\ud835\udc43\u2084\u2088 : (6 = ((((((0)+\n+)++)++)++)++)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2088): (6 =\n((((((0)++)++)++)++)++)++).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude1e\ud835\ude26 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26 \ud835\udfe3 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26\n\ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\udfe2++, \ud835\udfe4 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n(\ud835\udfe2++)++, \ud835\udfe5 \ud835\ude35\ud835\ude30 \ud835\ude23\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n((\ud835\udfe2++)++)++,\ud835\ude26\ud835\ude35\ud835\ude24. (\ud835\ude10\ud835\ude2f \ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude33\n\ud835\ude38\ud835\ude30\ud835\ude33\ud835\ude25\ud835\ude34, \ud835\udfe3 := \ud835\udfe2++, \ud835\udfe4 := \ud835\udfe3++, \ud835\udfe5 :=\n\ud835\udfe4++, \ud835\ude26\ud835\ude35\ud835\ude24. \ud835\ude10\ud835\ude2f \ud835\ude35\ud835\ude29\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude26\ud835\ude39\ud835\ude35 \ud835\ude10 \ud835\ude36\ud835\ude34\ud835\ude26 \"\ud835\ude39\n:= \ud835\ude3a\" \ud835\ude35\ud835\ude30 \ud835\ude25\ud835\ude26\ud835\ude2f\ud835\ude30\ud835\ude35\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude26 \ud835\ude34\ud835\ude35\ud835\ude22\ud835\ude35\ud835\ude26\ud835\ude2e\ud835\ude26\ud835\ude2f\ud835\ude35\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude39 \ud835\ude2a\ud835\ude34 \ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude2a\ud835\ude2f\ud835\ude26\ud835\ude25 \ud835\ude35\ud835\ude30 \ud835\ude26\ud835\ude32\ud835\ude36\ud835\ude22\ud835\ude2d \ud835\ude3a.)\u231d\n\ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2 \ud835\uddf1\ud835\uddf2\ud835\uddf3. (\ud835\udc37\u2081). (6 =\n((((((0)++)++)++)++)++)++) \ud835\uddc2\ud835\uddcc \ud835\uddba\ud835\uddc7\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7 \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddbd\ud835\uddbe\ud835\uddbf\ud835\uddc2\ud835\uddc7\ud835\uddc2\ud835\uddcd\ud835\uddc2\ud835\uddc8\ud835\uddc7.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc56\ud835\udc5b\ud835\udc56\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9f \u22a2 P, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 =\n((((((0)++)++)++)++)++)++). \u220e"}, {"color": "#FFF59D", "id": "P49", "label": "\ud835\udc43\u2084\u2089 : (((((((0)++)++\n)++)++)++)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2084\u2089):\n(((((((0)++)++)++)++)++)++ = 6).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (6 =\n((((((0)++)++)++)++)++)++)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2088).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081 = \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(((((((0)++)++)++)++)++)++ = 6).\n\u220e"}, {"color": "#FFF59D", "id": "P50", "label": "\ud835\udc43\u2085\u2080 : (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2080): (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((0)++\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfee.\ud835\udfef (\ud835\udc43\u2084). ((0)++ =\n1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f). \u220e"}, {"color": "#FFF59D", "id": "P51", "label": "\ud835\udc43\u2085\u2081 : ((5)++ = 6)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2081): ((5)++ =\n6). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n(((((((0)++)++)++)++)++)++ = 6)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2089).\n((((((0)++)++)++)++)++ = 5)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2083\u2088).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5)++ = 6). \u220e"}, {"color": "#FFF59D", "id": "P52", "label": "\ud835\udc43\u2085\u2082 : (6 = (5)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2085\u2082): (6 =\n(5)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5)++ = 6)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2081).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59\ud835\udc56\ud835\udc61\ud835\udc66-\n\ud835\udc50\ud835\udc5c\ud835\udc5a\ud835\udc5a\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc63\ud835\udc56\ud835\udc61\ud835\udc66 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc31\u2081 = \ud835\udc32\u2081) \u22a2 (\ud835\udc32\u2081 = \ud835\udc31\u2081)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 = (5)++). \u220e"}, {"color": "#FFF59D", "id": "P66", "label": "\ud835\udc43\u2086\u2086 : \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2086): \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \ud835\uddab\ud835\uddbe\ud835\uddcd (\ud835\udc77 = \ud835\udc78) := (4 = 0)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2085). \ud835\uddab\ud835\uddbe\ud835\uddcd (\ud835\udc77\n\u2260 \ud835\udc78) := (4 \u2260 0) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. \ud835\udfee.\ud835\udfed.\ud835\udff2 (\ud835\udc43\u2083\u2080). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc56\ud835\udc5b\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc60\ud835\udc56\ud835\udc60\ud835\udc61\ud835\udc52\ud835\udc5b\ud835\udc50\ud835\udc66-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-2\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc77 = \ud835\udc78), (\ud835\udc77 \u2260\n\ud835\udc78)) \u22a2 \ud835\udc3c\ud835\udc5b\ud835\udc50(\ud835\udcaf), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081). \u220e"}, {"color": "#FFF59D", "id": "P65", "label": "\ud835\udc43\u2086\u2085 : (4 = 0)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2085): (4 = 0).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ = (0)++)) \u27f9 (4\n= 0)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2084).(((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((4)++ = (0)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (4 = 0). \u220e"}, {"color": "#FFF59D", "id": "P64", "label": "\ud835\udc43\u2086\u2084 : ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)) \u27f9 (4 = 0))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2084): ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)) \u27f9 (4 = 0)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2084\n= 4, \ud835\udc26\u2082 = 0.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf, \ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((4)++ = (0)++)) \u27f9 (4 = 0)). \u220e"}, {"color": "#FFF59D", "id": "P63", "label": "\ud835\udc43\u2086\u2083 : (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2083): (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ =\n(0)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\n\ud835\udc0f\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2082).\n((4)++ = (0)++), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2081).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083 \u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((4 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((4)++ = (0)++)). \u220e"}, {"color": "#FFF59D", "id": "P62", "label": "\ud835\udc43\u2086\u2082 : ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2082): ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2082\u2086). (0\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083\n\u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (0 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P61", "label": "\ud835\udc43\u2086\u2081 : ((4)++ =\n(0)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2081): ((4)++ =\n(0)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((4)++ = 1)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2080). (1 =\n(0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((4)++ = (0)++).\n\u220e"}, {"color": "#FFF59D", "id": "P60", "label": "\ud835\udc43\u2086\u2080 : ((4)++ = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2086\u2080): ((4)++ =\n1). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 = 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2089). (5 = (4)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2080).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((4)++ = 1). \u220e"}, {"color": "#FFF59D", "id": "P59", "label": "\ud835\udc43\u2085\u2089 : (5 = 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2089): (5 = 1).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ = (1)++)) \u27f9 (5\n= 1)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2088).(((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((5)++ = (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2087).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(((\ud835\udc0f\u2081 \u27f9 \ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 = 1). \u220e"}, {"color": "#FFF59D", "id": "P58", "label": "\ud835\udc43\u2085\u2088 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)) \u27f9 (5 = 1))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2088): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)) \u27f9 (5 = 1)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3:\n((((\ud835\udc27\u2084 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc26\u2082 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((\ud835\udc27\u2084)++ = (\ud835\udc26\u2082)++)) \u27f9 (\ud835\udc27\u2084 = \ud835\udc26\u2082))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2083\u2082). \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\udc27\u2084\n= 5, \ud835\udc26\u2082 = 1.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc63\ud835\udc4e\ud835\udc5f\ud835\udc56\ud835\udc4e\ud835\udc4f\ud835\udc59\ud835\udc52-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (\ud835\uddaf, \ud835\udef7) \u22a2 \ud835\uddaf\u0027, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227\n((5)++ = (1)++)) \u27f9 (5 = 1)). \u220e"}, {"color": "#FFF59D", "id": "P57", "label": "\ud835\udc43\u2085\u2087 : (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2087): (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ =\n(1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\n\ud835\udc0f\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2086).\n((5)++ = (1)++), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2085).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083 \u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 ((5)++ = (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P56", "label": "\ud835\udc43\u2085\u2086 : ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2086): ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2084). (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2080). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083\n\u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P55", "label": "\ud835\udc43\u2085\u2085 : ((5)++ =\n(1)++)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2085): ((5)++ =\n(1)++). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2084). (2 =\n(1)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5)++ = (1)++).\n\u220e"}, {"color": "#FFF59D", "id": "P54", "label": "\ud835\udc43\u2085\u2084 : ((5)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2084): ((5)++ =\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (6 = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2083). (6 = (5)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2082).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((5)++ = 2). \u220e"}, {"color": "#FFF59D", "id": "P53", "label": "\ud835\udc43\u2085\u2083 : (6 = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\u210b\u2081.\ud835\udc43\u2085\u2083): (6 = 2).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude09\ud835\ude3a \ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34, \ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26 (\ud835\udfe8\n= \ud835\udfe4) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbb\ud835\uddd2\n\ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa (\ud835\udc34\u2085). (6 = 2) \ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd \ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd \ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c \u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 = 2). \u220e"}, {"color": "#81C784", "id": "A5", "label": "\ud835\udc34\u2085 : \u231c\ud835\ude09\ud835\ude3a \ud835\ude29\ud835\ude3a\ud835\ude31\ud835\ude30\ud835\ude35\ud835\ude29\ud835\ude26\ud835\ude34\ud835\ude2a\ud835\ude34,\n\ud835\ude22\ud835\ude34\ud835\ude34\ud835\ude36\ud835\ude2e\ud835\ude26 (\ud835\udfe8 = \ud835\udfe4) \ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P67", "label": "\ud835\udc43\u2086\u2087 (\ud835\udfee.\ud835\udfed.\ud835\udff4) : (6 \u2260\n2)", "labelHighlightBold": true, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb \ud835\udfee.\ud835\udfed.\ud835\udff4 (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2087): (6 \u2260\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \ud835\uddab\ud835\uddbe\ud835\uddcd \ud835\uddf5\ud835\ude06\ud835\uddfd. (\ud835\udc3b\u2081) \ud835\uddbb\ud835\uddbe \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddc1\ud835\uddd2\ud835\uddc9\ud835\uddc8\ud835\uddcd\ud835\uddc1\ud835\uddbe\ud835\uddcc\ud835\uddc2\ud835\uddcc (6 = 2). \ud835\udc3c\ud835\udc5b\ud835\udc50(\u210b\u2081)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2086\u2086).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5d\ud835\udc5f\ud835\udc5c\ud835\udc5c\ud835\udc53-\n\ud835\udc4f\ud835\udc66-\ud835\udc5f\ud835\udc52\ud835\udc53\ud835\udc62\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-2 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n(\ud835\udcd7 \ud835\udc4e\ud835\udc60\ud835\udc60\ud835\udc62\ud835\udc5a\ud835\udc52 (\ud835\udc77 = \ud835\udc78), \ud835\udc3c\ud835\udc5b\ud835\udc50(\ud835\udcd7)) \u22a2 (\ud835\udc77\n\u2260 \ud835\udc78), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (6 \u2260 2). \u220e"}, {"color": "#FFF59D", "id": "P68", "label": "\ud835\udc43\u2086\u2088 : ((1)++ = 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2088): ((1)++ =\n2). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (((0)++)++ = 2)\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2087). ((0)++\n= 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\n\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe\n\ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 = \ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082),\n\ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((1)++ = 2). \u220e"}, {"color": "#FFF59D", "id": "P69", "label": "\ud835\udc43\u2086\u2089 : (5 \u2260 1)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2086\u2089): (5 \u2260 1).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \u2260 (0)++) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2087). ((0)++ = 1) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2081\u2085).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (5 \u2260\n1). \u220e"}, {"color": "#FFF59D", "id": "P70", "label": "\ud835\udc43\u2087\u2080 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 (1)++))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2080): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 (1)++)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9\n((5)++ \u2260 (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2085). ((5)++ = 6) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc\n\ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2085\u2081).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 (1)++)). \u220e"}, {"color": "#FFF59D", "id": "P71", "label": "\ud835\udc43\u2087\u2081 : ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 2))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2081): ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 2)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6\n\u2260 (1)++)) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2087\u2080). ((1)++ = 2) \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6\n\ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2088).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc52\ud835\udc5e\ud835\udc62\ud835\udc4e\ud835\udc59-\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5a\ud835\udc60-\ud835\udc60\ud835\udc62\ud835\udc4f\ud835\udc60\ud835\udc61\ud835\udc56\ud835\udc61\ud835\udc62\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2082 , (\ud835\udc31\u2082 =\n\ud835\udc32\u2082)) \u22a2 \ud835\udc10\u2082), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\u27f9 (6 \u2260 2)). \u220e"}, {"color": "#FFF59D", "id": "P72", "label": "\ud835\udc43\u2087\u2082 : ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2082): ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: (5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2084\u2084). (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2085\u2080). \ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe\n\ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b\n\ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: ((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083\n\u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)). \u220e"}, {"color": "#FFF59D", "id": "P73", "label": "\ud835\udc43\u2087\u2083 : (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2083): (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)), \ud835\uddc8\ud835\uddbf\n\ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc0f\u2083, \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2087\u2082). (5 \u2260 1), \ud835\uddc8\ud835\uddbf \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6 \ud835\udc10\u2083,\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2086\u2089).\n\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc50\ud835\udc5c\ud835\udc5b\ud835\udc57\ud835\udc62\ud835\udc5b\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc5f\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc50\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe:\n((\ud835\udc0f\u2083 , \ud835\udc10\u2083) \u22a2 (\ud835\udc0f\u2083 \u2227 \ud835\udc10\u2083)), \ud835\uddc2\ud835\uddcd\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)). \u220e"}, {"color": "#FFF59D", "id": "P74", "label": "\ud835\udc43\u2087\u2084 : (6 \u2260 2)", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2084): (6 \u2260 2).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: ((((5 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\n\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1)) \u27f9 (6 \u2260 2))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd. (\ud835\udc43\u2087\u2081).(((5\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (1 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)) \u2227 (5 \u2260 1))\n\ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddfd\ud835\uddff\ud835\uddfc\ud835\uddfd.\n(\ud835\udc43\u2087\u2083).\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc5a\ud835\udc5c\ud835\udc51\ud835\udc62\ud835\udc60-\n\ud835\udc5d\ud835\udc5c\ud835\udc5b\ud835\udc52\ud835\udc5b\ud835\udc60 \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: (((\ud835\udc0f\u2081 \u27f9\n\ud835\udc0f\u2081) , \ud835\udc0f\u2081) \u22a2 \ud835\udc10\u2081), \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n(6 \u2260 2). \u220e"}, {"color": "#81C784", "id": "A6", "label": "\ud835\udc34\u2086 : \u231c\ud835\ude13\ud835\ude26\ud835\ude35 \ud835\ude17(\ud835\ude2f) \ud835\ude23\ud835\ude26\n\ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude3a\n\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude22\ud835\ude2a\ud835\ude2f\ud835\ude2a\ud835\ude2f\ud835\ude28 \ud835\ude35\ud835\ude30 \ud835\ude22\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\n\ud835\ude1a\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude17(\ud835\ude16) \ud835\ude2a\ud835\ude34\n\ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude34\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26\n\ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude38\ud835\ude29\ud835\ude26\ud835\ude2f\ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33 \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude17(\ud835\ude2f++) \ud835\ude2a\ud835\ude34\n\ud835\ude22\ud835\ude2d\ud835\ude34\ud835\ude30 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26. \ud835\ude1b\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d", "shape": "box"}, {"color": "#FFF59D", "id": "P75", "label": "\ud835\udc43\u2087\u2085 : (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227\n(\ud835\udc0f\u2084(0) \u2227 (\ud835\udc0f\u2084(\ud835\udc27\u2085) \u27f9\n\ud835\udc0f\u2084((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f)\n\u27f9 \ud835\udc0f\u2084(\ud835\udc26\u2083)))", "labelHighlightBold": false, "shape": "box", "title": "\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfd\ud835\uddfc\ud835\ude00\ud835\uddf6\ud835\ude01\ud835\uddf6\ud835\uddfc\ud835\uddfb (\ud835\udcaf\u2081.\ud835\udc43\u2087\u2085): (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2084(0) \u2227\n(\ud835\udc0f\u2084(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2084((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2084(\ud835\udc26\u2083))).\n\ud835\udde3\ud835\uddff\ud835\uddfc\ud835\uddfc\ud835\uddf3: \u231c\ud835\ude13\ud835\ude26\ud835\ude35 \ud835\ude17(\ud835\ude2f) \ud835\ude23\ud835\ude26 \ud835\ude22\ud835\ude2f\ud835\ude3a \ud835\ude31\ud835\ude33\ud835\ude30\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude3a\n\ud835\ude31\ud835\ude26\ud835\ude33\ud835\ude35\ud835\ude22\ud835\ude2a\ud835\ude2f\ud835\ude2a\ud835\ude2f\ud835\ude28 \ud835\ude35\ud835\ude30 \ud835\ude22 \ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33\n\ud835\ude2f. \ud835\ude1a\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude17(\ud835\ude16) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26,\n\ud835\ude22\ud835\ude2f\ud835\ude25 \ud835\ude34\ud835\ude36\ud835\ude31\ud835\ude31\ud835\ude30\ud835\ude34\ud835\ude26 \ud835\ude35\ud835\ude29\ud835\ude22\ud835\ude35 \ud835\ude38\ud835\ude29\ud835\ude26\ud835\ude2f\ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33 \ud835\ude17(\ud835\ude2f)\n\ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26, \ud835\ude17(\ud835\ude2f++) \ud835\ude2a\ud835\ude34 \ud835\ude22\ud835\ude2d\ud835\ude34\ud835\ude30 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26.\n\ud835\ude1b\ud835\ude29\ud835\ude26\ud835\ude2f \ud835\ude17(\ud835\ude2f) \ud835\ude2a\ud835\ude34 \ud835\ude35\ud835\ude33\ud835\ude36\ud835\ude26 \ud835\ude27\ud835\ude30\ud835\ude33 \ud835\ude26\ud835\ude37\ud835\ude26\ud835\ude33\ud835\ude3a\n\ud835\ude2f\ud835\ude22\ud835\ude35\ud835\ude36\ud835\ude33\ud835\ude22\ud835\ude2d \ud835\ude2f\ud835\ude36\ud835\ude2e\ud835\ude23\ud835\ude26\ud835\ude33 \ud835\ude2f.\u231d \ud835\uddc2\ud835\uddcc \ud835\uddc9\ud835\uddc8\ud835\uddcc\ud835\uddcd\ud835\uddce\ud835\uddc5\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddbd\n\ud835\uddbb\ud835\uddd2 \ud835\uddee\ud835\ude05\ud835\uddf6\ud835\uddfc\ud835\uddfa \ud835\ude00\ud835\uddf0\ud835\uddf5\ud835\uddf2\ud835\uddfa\ud835\uddee (\ud835\udc34\u2086). (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2084(0) \u2227\n(\ud835\udc0f\u2084(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2084((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2084(\ud835\udc26\u2083)))\n\ud835\uddc2\ud835\uddcc \ud835\uddba \ud835\uddcf\ud835\uddba\ud835\uddc5\ud835\uddc2\ud835\uddbd \ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddc6\ud835\uddce\ud835\uddc5\ud835\uddba \ud835\uddcc\ud835\uddcd\ud835\uddba\ud835\uddcd\ud835\uddbe\ud835\uddc6\ud835\uddbe\ud835\uddc7\ud835\uddcd\n\ud835\uddc2\ud835\uddc7\ud835\uddcd\ud835\uddbe\ud835\uddcb\ud835\uddc9\ud835\uddcb\ud835\uddbe\ud835\uddcd\ud835\uddbe\ud835\uddbd \ud835\uddbf\ud835\uddcb\ud835\uddc8\ud835\uddc6 \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd\n\ud835\uddba\ud835\uddd1\ud835\uddc2\ud835\uddc8\ud835\uddc6.\ud835\uddb3\ud835\uddc1\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddbf\ud835\uddc8\ud835\uddcb\ud835\uddbe, \ud835\uddbb\ud835\uddd2 \ud835\uddcd\ud835\uddc1\ud835\uddbe \ud835\udc4e\ud835\udc65\ud835\udc56\ud835\udc5c\ud835\udc5a-\n\ud835\udc56\ud835\udc5b\ud835\udc61\ud835\udc52\ud835\udc5f\ud835\udc5d\ud835\udc5f\ud835\udc52\ud835\udc61\ud835\udc4e\ud835\udc61\ud835\udc56\ud835\udc5c\ud835\udc5b \ud835\uddc2\ud835\uddc7\ud835\uddbf\ud835\uddbe\ud835\uddcb\ud835\uddbe\ud835\uddc7\ud835\uddbc\ud835\uddbe \ud835\uddcb\ud835\uddce\ud835\uddc5\ud835\uddbe: \ud835\udc9c\n\u22a2 \ud835\uddaf, \ud835\uddc2\ud835\uddcd \ud835\uddbf\ud835\uddc8\ud835\uddc5\ud835\uddc5\ud835\uddc8\ud835\uddd0\ud835\uddcc \ud835\uddcd\ud835\uddc1\ud835\uddba\ud835\uddcd (((\ud835\udc27\u2085 \ud835\udc56\ud835\udc60-\ud835\udc4e\n\ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u2227 (\ud835\udc0f\u2084(0) \u2227\n(\ud835\udc0f\u2084(\ud835\udc27\u2085) \u27f9 \ud835\udc0f\u2084((\ud835\udc27\u2085)++)))) \u27f9 ((\ud835\udc26\u2083\n\ud835\udc56\ud835\udc60-\ud835\udc4e \ud835\udc5b\ud835\udc4e\ud835\udc61\ud835\udc62\ud835\udc5f\ud835\udc4e\ud835\udc59-\ud835\udc5b\ud835\udc62\ud835\udc5a\ud835\udc4f\ud835\udc52\ud835\udc5f) \u27f9 \ud835\udc0f\u2084(\ud835\udc26\u2083))).\n\u220e"}]); edges = new vis.DataSet([{"arrows": "to", "from": "A1", "to": "P1"}, {"arrows": "to", "from": "A2", "to": "P2"}, {"arrows": "to", "from": "P2", "to": "P3"}, {"arrows": "to", "from": "P3", "to": "P4"}, {"arrows": "to", "from": "P1", "to": "P4"}, {"arrows": "to", "from": "D1", "to": "P5"}, {"arrows": "to", "from": "D1", "to": "P6"}, {"arrows": "to", "from": "D1", "to": "P7"}, {"arrows": "to", "from": "D1", "to": "P8"}, {"arrows": "to", "from": "P2", "to": "P9"}, {"arrows": "to", "from": "P9", "to": "P10"}, {"arrows": "to", "from": "P4", "to": "P10"}, {"arrows": "to", "from": "P2", "to": "P11"}, {"arrows": "to", "from": "P11", "to": "P12"}, {"arrows": "to", "from": "P10", "to": "P12"}, {"arrows": "to", "from": "P2", "to": "P13"}, {"arrows": "to", "from": "P13", "to": "P14"}, {"arrows": "to", "from": "P12", "to": "P14"}, {"arrows": "to", "from": "P5", "to": "P15"}, {"arrows": "to", "from": "P6", "to": "P16"}, {"arrows": "to", "from": "P15", "to": "P16"}, {"arrows": "to", "from": "P6", "to": "P17"}, {"arrows": "to", "from": "P7", "to": "P18"}, {"arrows": "to", "from": "P17", "to": "P18"}, {"arrows": "to", "from": "P7", "to": "P19"}, {"arrows": "to", "from": "P19", "to": "P20"}, {"arrows": "to", "from": "P17", "to": "P20"}, {"arrows": "to", "from": "P12", "to": "P21"}, {"arrows": "to", "from": "P19", "to": "P21"}, {"arrows": "to", "from": "D1", "to": "P22"}, {"arrows": "to", "from": "P8", "to": "P23"}, {"arrows": "to", "from": "P23", "to": "P24"}, {"arrows": "to", "from": "P19", "to": "P24"}, {"arrows": "to", "from": "P13", "to": "P25"}, {"arrows": "to", "from": "P24", "to": "P25"}, {"arrows": "to", "from": "P14", "to": "P26"}, {"arrows": "to", "from": "P23", "to": "P26"}, {"arrows": "to", "from": "A3", "to": "P27"}, {"arrows": "to", "from": "P27", "to": "P28"}, {"arrows": "to", "from": "P28", "to": "P29"}, {"arrows": "to", "from": "P21", "to": "P29"}, {"arrows": "to", "from": "P29", "to": "P30"}, {"arrows": "to", "from": "P24", "to": "P30"}, {"arrows": "to", "from": "A4", "to": "P31"}, {"arrows": "to", "from": "A4", "to": "P32"}, {"arrows": "to", "from": "P31", "to": "P33"}, {"arrows": "to", "from": "P26", "to": "P34"}, {"arrows": "to", "from": "P1", "to": "P34"}, {"arrows": "to", "from": "P34", "to": "P35"}, {"arrows": "to", "from": "P30", "to": "P35"}, {"arrows": "to", "from": "P33", "to": "P36"}, {"arrows": "to", "from": "P35", "to": "P36"}, {"arrows": "to", "from": "D1", "to": "P37"}, {"arrows": "to", "from": "P37", "to": "P38"}, {"arrows": "to", "from": "P38", "to": "P39"}, {"arrows": "to", "from": "P23", "to": "P39"}, {"arrows": "to", "from": "P39", "to": "P40"}, {"arrows": "to", "from": "P31", "to": "P41"}, {"arrows": "to", "from": "P2", "to": "P42"}, {"arrows": "to", "from": "P42", "to": "P43"}, {"arrows": "to", "from": "P39", "to": "P43"}, {"arrows": "to", "from": "P43", "to": "P44"}, {"arrows": "to", "from": "P26", "to": "P44"}, {"arrows": "to", "from": "P31", "to": "P45"}, {"arrows": "to", "from": "P33", "to": "P46"}, {"arrows": "to", "from": "P35", "to": "P46"}, {"arrows": "to", "from": "P46", "to": "P47"}, {"arrows": "to", "from": "P39", "to": "P47"}, {"arrows": "to", "from": "D1", "to": "P48"}, {"arrows": "to", "from": "P48", "to": "P49"}, {"arrows": "to", "from": "P4", "to": "P50"}, {"arrows": "to", "from": "P15", "to": "P50"}, {"arrows": "to", "from": "P49", "to": "P51"}, {"arrows": "to", "from": "P38", "to": "P51"}, {"arrows": "to", "from": "P51", "to": "P52"}, {"arrows": "to", "from": "P32", "to": "P64"}, {"arrows": "to", "from": "P64", "to": "P65"}, {"arrows": "to", "from": "P26", "to": "P62"}, {"arrows": "to", "from": "P1", "to": "P62"}, {"arrows": "to", "from": "P62", "to": "P63"}, {"arrows": "to", "from": "P32", "to": "P58"}, {"arrows": "to", "from": "P58", "to": "P59"}, {"arrows": "to", "from": "P44", "to": "P56"}, {"arrows": "to", "from": "P50", "to": "P56"}, {"arrows": "to", "from": "P56", "to": "P57"}, {"arrows": "to", "from": "A5", "to": "P53"}, {"arrows": "to", "from": "P53", "to": "P54"}, {"arrows": "to", "from": "P52", "to": "P54"}, {"arrows": "to", "from": "P54", "to": "P55"}, {"arrows": "to", "from": "P16", "to": "P55"}, {"arrows": "to", "from": "P55", "to": "P57"}, {"arrows": "to", "from": "P57", "to": "P59"}, {"arrows": "to", "from": "P59", "to": "P60"}, {"arrows": "to", "from": "P40", "to": "P60"}, {"arrows": "to", "from": "P60", "to": "P61"}, {"arrows": "to", "from": "P5", "to": "P61"}, {"arrows": "to", "from": "P61", "to": "P63"}, {"arrows": "to", "from": "P63", "to": "P65"}, {"arrows": "to", "from": "P65", "to": "P66"}, {"arrows": "to", "from": "P30", "to": "P66"}, {"arrows": "to", "from": "P66", "to": "P67"}, {"arrows": "to", "from": "P17", "to": "P68"}, {"arrows": "to", "from": "P15", "to": "P68"}, {"arrows": "to", "from": "P47", "to": "P69"}, {"arrows": "to", "from": "P15", "to": "P69"}, {"arrows": "to", "from": "P45", "to": "P70"}, {"arrows": "to", "from": "P51", "to": "P70"}, {"arrows": "to", "from": "P70", "to": "P71"}, {"arrows": "to", "from": "P68", "to": "P71"}, {"arrows": "to", "from": "P44", "to": "P72"}, {"arrows": "to", "from": "P50", "to": "P72"}, {"arrows": "to", "from": "P72", "to": "P73"}, {"arrows": "to", "from": "P69", "to": "P73"}, {"arrows": "to", "from": "P71", "to": "P74"}, {"arrows": "to", "from": "P73", "to": "P74"}, {"arrows": "to", "from": "A6", "to": "P75"}]); nodeColors = {}; diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_latex.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_latex.txt index 57af3e54..d4741aba 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_latex.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_latex.txt @@ -1 +1 @@ -\mathsf{}\mathsf{}\section{\boldsymbol\mathsf{Theory properties}}}\mathsf{}\boldsymbol\mathsf{Consistency: }}undetermined\mathsf{}\mathsf{}\boldsymbol\mathsf{Stabilized: }}False\mathsf{}\mathsf{}\boldsymbol\mathsf{Extended theory: }}N/A\mathsf{}\section{\boldsymbol\mathsf{Simple-objects declarations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{0}\right\ulcorner, \left\ulcorner\mathit{natural-number}\right\ulcorner, \left\ulcorner\mathit{1}\right\ulcorner, \left\ulcorner\mathit{2}\right\ulcorner, \left\ulcorner\mathit{3}\right\ulcorner, \left\ulcorner\mathit{4}\right\ulcorner, \left\ulcorner\mathit{5}\right\ulcorner, \left\ulcorner\mathit{6}\right\ulcorner\mathsf{ be }\mathit{simple-objects}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Relations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{++}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{Inc}\right\ulcorner\mathsf{ be }\mathit{unary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{\land}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\neq}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{is-a}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{=}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\implies}\right\ulcorner\mathsf{ be }\mathit{binary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Inference rules}}}\mathsf{}\mathsf{The following inference rules are considered valid under this theory:}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{axiom-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒜 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{conjunction-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, Q) ⊢ (P ⋀ Q)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{definition-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equal-terms-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, (Q = R)) ⊢ P'\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equality-commutativity}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(x = y) ⊢ (y = x)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{inconsistency-by-inequality-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{modus-ponens}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner((P ⟹ Q), P) ⊢ Q\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{proof-by-refutation-of-equality}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{variable-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, 𝛷) ⊢ P'\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Theory elaboration sequence}}}\mathsf{}# \boldsymbol\mathsf{2}}: \boldsymbol\mathsf{The natural numbers}}\mathsf{}\mathsf{}## \boldsymbol\mathsf{2.1}}: \boldsymbol\mathsf{The peano axioms}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Informal definition of natural number}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.1}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.1}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{1}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{axiom-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{axiom-interpretation}\mathsf{ defined as }\left\ulcorner𝒜 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{1}\mathsf{)}\mathsf{: }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.2}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.2}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{2}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{2}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{2}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{variable-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{variable-substitution}\mathsf{ defined as }\left\ulcorner(P, 𝛷) ⊢ P'\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{3}\mathsf{)}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{modus-ponens}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{modus-ponens}\mathsf{ defined as }\left\ulcorner((P ⟹ Q), P) ⊢ Q\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{4}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Definition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{D}_{1}\mathsf{)}\mathsf{: Let }\mathit{definition}\mathsf{ }\mathcal{D}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{definition-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{definition-interpretation}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{5}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{6}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{7}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{8}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{9}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{10}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{11}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{12}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{13}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{14}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equality-commutativity}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equality-commutativity}\mathsf{ defined as }\left\ulcorner(x = y) ⊢ (y = x)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{15}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equal-terms-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equal-terms-substitution}\mathsf{ defined as }\left\ulcorner(P, (Q = R)) ⊢ P'\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{16}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{17}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{18}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{3 is a natural number}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{19}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{20}\mathsf{)}\mathsf{: }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{21}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{22}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{23}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{24}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{25}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{26}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.3}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{3}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{3}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{27}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{4 is not equal to 0.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{28}\mathsf{)}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{29}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.6}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{30}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.4}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{4}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{4}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{31}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{32}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{6 is not equal to 2.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{33}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{conjunction-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{conjunction-introduction}\mathsf{ defined as }\left\ulcorner(P, Q) ⊢ (P ⋀ Q)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{34}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{35}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{36}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{37}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{38}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{39}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{40}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{41}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{42}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{43}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{44}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{45}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{46}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{47}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{48}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{49}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{50}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{51}\mathsf{)}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{52}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Proof by contradiction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Hypothesis}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{H}_{1}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{inconsistency-by-inequality-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{inconsistency-by-inequality-introduction}\mathsf{ defined as }\left\ulcorner((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{66}\mathsf{)}\mathsf{: }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{proof-by-refutation-of-equality}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{proof-by-refutation-of-equality}\mathsf{ defined as }\left\ulcorner(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.8}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{67}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Direct proof}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{68}\mathsf{)}\mathsf{: }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{69}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{70}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{71}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{72}\mathsf{)}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{73}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{74}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.5: the principle of mathematical induction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom schema}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{6}\mathsf{)} - Principle of mathematical induction\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{6}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{75}\mathsf{)}\mathsf{: }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{1}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{1}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{The number system n}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Recursive definitions}}\mathsf{} \ No newline at end of file +\mathsf{}\mathsf{}\section{\boldsymbol\mathsf{Theory properties}}}\mathsf{}\boldsymbol\mathsf{Consistency: }}undetermined\mathsf{}\mathsf{}\boldsymbol\mathsf{Stabilized: }}False\mathsf{}\mathsf{}\boldsymbol\mathsf{Extended theory: }}N/A\mathsf{}\section{\boldsymbol\mathsf{Simple-objects declarations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{0}\right\ulcorner, \left\ulcorner\mathit{natural-number}\right\ulcorner, \left\ulcorner\mathit{1}\right\ulcorner, \left\ulcorner\mathit{2}\right\ulcorner, \left\ulcorner\mathit{3}\right\ulcorner, \left\ulcorner\mathit{4}\right\ulcorner, \left\ulcorner\mathit{5}\right\ulcorner, \left\ulcorner\mathit{6}\right\ulcorner\mathsf{ be }\mathit{simple-objects}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Relations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{++}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{Inc}\right\ulcorner\mathsf{ be }\mathit{unary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{\implies}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\neq}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\land}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{is-a}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{=}\right\ulcorner\mathsf{ be }\mathit{binary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Inference rules}}}\mathsf{}\mathsf{The following inference rules are considered valid under this theory:}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{axiom-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{A |- P}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{conjunction-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{definition-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equal-terms-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equality-commutativity}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{inconsistency-introduction-2}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{((P = Q), (P neq Q)) |- Inc(T)}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{modus-ponens}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{proof-by-refutation-2}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{variable-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{(P, Phi) |- P'}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Theory elaboration sequence}}}\mathsf{}# \boldsymbol\mathsf{2}}: \boldsymbol\mathsf{The natural numbers}}\mathsf{}\mathsf{}## \boldsymbol\mathsf{2.1}}: \boldsymbol\mathsf{The peano axioms}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Informal definition of natural number}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.1}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.1}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{1}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{axiom-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{axiom-interpretation}\mathsf{ defined as }\left\ulcorner\mathsf{A |- P}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{1}\mathsf{)}\mathsf{: }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.2}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.2}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{2}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{2}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{2}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{variable-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{variable-substitution}\mathsf{ defined as }\left\ulcorner\mathsf{(P, Phi) |- P'}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{3}\mathsf{)}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{modus-ponens}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{modus-ponens}\mathsf{ defined as }\left\ulcorner\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{4}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Definition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{D}_{1}\mathsf{)}\mathsf{: Let }\mathit{definition}\mathsf{ }\mathcal{D}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{definition-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{definition-interpretation}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{5}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{6}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{7}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{8}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{9}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{10}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{11}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{12}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{13}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{14}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equality-commutativity}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equality-commutativity}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{15}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equal-terms-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equal-terms-substitution}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{16}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{17}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{18}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{3 is a natural number}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{19}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{20}\mathsf{)}\mathsf{: }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{21}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{22}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{23}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{24}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{25}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{26}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.3}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{3}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{3}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{27}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{4 is not equal to 0.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{28}\mathsf{)}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{29}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.6}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{30}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.4}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{4}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{4}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{31}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{32}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{6 is not equal to 2.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{33}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{conjunction-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{conjunction-introduction}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{34}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{35}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{36}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{37}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{38}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{39}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{40}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{41}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{42}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{43}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{44}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{45}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{46}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{47}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{48}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{49}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{50}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{51}\mathsf{)}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{52}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{.}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Proof by contradiction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Hypothesis}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{H}_{1}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{inconsistency-introduction-2}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{inconsistency-introduction-2}\mathsf{ defined as }\left\ulcorner\mathsf{((P = Q), (P neq Q)) |- Inc(T)}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{66}\mathsf{)}\mathsf{: }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{proof-by-refutation-2}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{proof-by-refutation-2}\mathsf{ defined as }\left\ulcorner(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.8}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{67}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Direct proof}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{68}\mathsf{)}\mathsf{: }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{69}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{70}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{71}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{72}\mathsf{)}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{73}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{74}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.5: the principle of mathematical induction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom schema}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{6}\mathsf{)} - Principle of mathematical induction\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{6}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{75}\mathsf{)}\mathsf{: }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{4}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{4}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{.}\mathsf{}\mathsf{}### \boldsymbol\mathsf{The number system n}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Recursive definitions}}\mathsf{} \ No newline at end of file diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_plaintext.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_plaintext.txt index e450e384..99813c76 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_plaintext.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_plaintext.txt @@ -10,19 +10,19 @@ Let "0", "natural-number", "1", "2", "3", "4", "5", "6" be simple-objects in U1. # Relations Let "++", "Inc" be unary-relations in U1. -Let "and", "neq", "is-a", "=", "==>" be binary-relations in U1. +Let "==>", "neq", "and", "is-a", "=" be binary-relations in U1. # Inference rules The following inference rules are considered valid under this theory: -Let "axiom-interpretation" be an inference-rule defined as "𝒜 ⊢ P" in U1. -Let "conjunction-introduction" be an inference-rule defined as "(P, Q) ⊢ (P ⋀ Q)" in U1. +Let "axiom-interpretation" be an inference-rule defined as "A |- P" in U1. +Let "conjunction-introduction" be an inference-rule defined as "((P3 , Q3) |- (P3 and Q3))" in U1. Let "definition-interpretation" be an inference-rule defined as "𝒟 ⊢ P" in U1. -Let "equal-terms-substitution" be an inference-rule defined as "(P, (Q = R)) ⊢ P'" in U1. -Let "equality-commutativity" be an inference-rule defined as "(x = y) ⊢ (y = x)" in U1. -Let "inconsistency-by-inequality-introduction" be an inference-rule defined as "((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)" in U1. -Let "modus-ponens" be an inference-rule defined as "((P ⟹ Q), P) ⊢ Q" in U1. -Let "proof-by-refutation-of-equality" be an inference-rule defined as "(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)" in U1. -Let "variable-substitution" be an inference-rule defined as "(P, 𝛷) ⊢ P'" in U1. +Let "equal-terms-substitution" be an inference-rule defined as "((P2 , (x2 = y2)) |- Q2)" in U1. +Let "equality-commutativity" be an inference-rule defined as "((x1 = y1) |- (y1 = x1))" in U1. +Let "inconsistency-introduction-2" be an inference-rule defined as "((P = Q), (P neq Q)) |- Inc(T)" in U1. +Let "modus-ponens" be an inference-rule defined as "(((P1 ==> P1) , P1) |- Q1)" in U1. +Let "proof-by-refutation-2" be an inference-rule defined as "(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)" in U1. +Let "variable-substitution" be an inference-rule defined as "(P, Phi) |- P'" in U1. # Theory elaboration sequence # 2: The natural numbers @@ -30,14 +30,14 @@ Let "variable-substitution" be an inference-rule defined as "(P, 𝛷) ⊢ P'" i ### Informal definition of natural number ### Axiom 2.1 Axiom 2.1 (T1.A1): Let axiom A1 "0 is a natural number." be included (postulated) in T1. -Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "𝒜 ⊢ P" be included and considered valid in T1. +Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "A |- P" be included and considered valid in T1. Proposition (T1.P1): (0 is-a natural-number). ### Axiom 2.2 Axiom 2.2 (T1.A2): Let axiom A2 "If n is a natural number, then n++ is a natural number." be included (postulated) in T1. Proposition (T1.P2): ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)). -Inference rule (variable-substitution): Let inference-rule variable-substitution defined as "(P, 𝛷) ⊢ P'" be included and considered valid in T1. +Inference rule (variable-substitution): Let inference-rule variable-substitution defined as "(P, Phi) |- P'" be included and considered valid in T1. Proposition (T1.P3): ((0 is-a natural-number) ==> ((0)++ is-a natural-number)). -Inference rule (modus-ponens): Let inference-rule modus-ponens defined as "((P ⟹ Q), P) ⊢ Q" be included and considered valid in T1. +Inference rule (modus-ponens): Let inference-rule modus-ponens defined as "(((P1 ==> P1) , P1) |- Q1)" be included and considered valid in T1. Proposition 2.2.3 (T1.P4): ((0)++ is-a natural-number). Definition (T1.D1): Let definition D1 "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" be included (postulated) in T1. Inference rule (definition-interpretation): Let inference-rule definition-interpretation defined as "𝒟 ⊢ P" be included and considered valid in T1. @@ -51,9 +51,9 @@ Proposition (T1.P11): ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a n Proposition (T1.P12): ((((0)++)++)++ is-a natural-number). Proposition (T1.P13): (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). Proposition (T1.P14): (((((0)++)++)++)++ is-a natural-number). -Inference rule (equality-commutativity): Let inference-rule equality-commutativity defined as "(x = y) ⊢ (y = x)" be included and considered valid in T1. +Inference rule (equality-commutativity): Let inference-rule equality-commutativity defined as "((x1 = y1) |- (y1 = x1))" be included and considered valid in T1. Proposition (T1.P15): ((0)++ = 1). -Inference rule (equal-terms-substitution): Let inference-rule equal-terms-substitution defined as "(P, (Q = R)) ⊢ P'" be included and considered valid in T1. +Inference rule (equal-terms-substitution): Let inference-rule equal-terms-substitution defined as "((P2 , (x2 = y2)) |- Q2)" be included and considered valid in T1. Proposition (T1.P16): (2 = (1)++). Proposition (T1.P17): (((0)++)++ = 2). Proposition (T1.P18): (3 = (2)++). @@ -79,7 +79,7 @@ Proposition (T1.P31): ((((n3 is-a natural-number) and (m1 is-a natural-number)) Proposition (T1.P32): ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)). ### 6 is not equal to 2. Proposition (T1.P33): ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)). -Inference rule (conjunction-introduction): Let inference-rule conjunction-introduction defined as "(P, Q) ⊢ (P ⋀ Q)" be included and considered valid in T1. +Inference rule (conjunction-introduction): Let inference-rule conjunction-introduction defined as "((P3 , Q3) |- (P3 and Q3))" be included and considered valid in T1. Proposition (T1.P34): ((4 is-a natural-number) and (0 is-a natural-number)). Proposition (T1.P35): (((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)). Proposition (T1.P36): ((4)++ neq (0)++). @@ -101,9 +101,9 @@ Proposition (T1.P51): ((5)++ = 6). Proposition (T1.P52): (6 = (5)++). #### Proof by contradiction Hypothesis (T1.H1): (6 = 2). -Inference rule (inconsistency-by-inequality-introduction): Let inference-rule inconsistency-by-inequality-introduction defined as "((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)" be included and considered valid in T1. +Inference rule (inconsistency-introduction-2): Let inference-rule inconsistency-introduction-2 defined as "((P = Q), (P neq Q)) |- Inc(T)" be included and considered valid in T1. Proposition (T1.P66): Inc(H1). -Inference rule (proof-by-refutation-of-equality): Let inference-rule proof-by-refutation-of-equality defined as "(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)" be included and considered valid in T1. +Inference rule (proof-by-refutation-2): Let inference-rule proof-by-refutation-2 defined as "(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)" be included and considered valid in T1. Proposition 2.1.8 (T1.P67): (6 neq 2). #### Direct proof Proposition (T1.P68): ((1)++ = 2). @@ -115,6 +115,6 @@ Proposition (T1.P73): (((5 is-a natural-number) and (1 is-a natural-number)) and Proposition (T1.P74): (6 neq 2). ### Axiom 2.5: the principle of mathematical induction Axiom schema (T1.A6) - Principle of mathematical induction: Let axiom A6 "Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n." be included (postulated) in T1. -Proposition (T1.P75): (((n5 is-a natural-number) and (P1(0) and (P1(n5) ==> P1((n5)++)))) ==> ((m3 is-a natural-number) ==> P1(m3))). +Proposition (T1.P75): (((n5 is-a natural-number) and (P4(0) and (P4(n5) ==> P4((n5)++)))) ==> ((m3 is-a natural-number) ==> P4(m3))). ### The number system n ### Recursive definitions diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_unicode.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_unicode.txt index 85bebebb..0d7d58ad 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_unicode.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_noproof_enus_unicode.txt @@ -10,19 +10,19 @@ # 𝗥𝗲𝗹𝗮𝘁𝗶𝗼𝗻𝘀 𝖫𝖾𝗍 ⌜++⌝, ⌜𝐼𝑛𝑐⌝ 𝖻𝖾 𝑢𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜∧⌝, ⌜≠⌝, ⌜𝑖𝑠-𝑎⌝, ⌜=⌝, ⌜⟹⌝ 𝖻𝖾 𝑏𝑖𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜⟹⌝, ⌜≠⌝, ⌜∧⌝, ⌜𝑖𝑠-𝑎⌝, ⌜=⌝ 𝖻𝖾 𝑏𝑖𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. # 𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲𝘀 𝖳𝗁𝖾 𝖿𝗈𝗅𝗅𝗈𝗐𝗂𝗇𝗀 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾𝗌 𝖺𝗋𝖾 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗎𝗇𝖽𝖾𝗋 𝗍𝗁𝗂𝗌 𝗍𝗁𝖾𝗈𝗋𝗒: -𝖫𝖾𝗍 ⌜𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ P⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, Q) ⊢ (P ⋀ Q)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ 𝖯⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃))⌝ 𝗂𝗇 𝒰₁. 𝖫𝖾𝗍 ⌜𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒟 ⊢ P⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, (Q = R)) ⊢ P'⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(x = y) ⊢ (y = x)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P ⟹ Q), P) ⊢ Q⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, 𝛷) ⊢ P'⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁))⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝖯, 𝛷) ⊢ 𝖯'⌝ 𝗂𝗇 𝒰₁. # 𝗧𝗵𝗲𝗼𝗿𝘆 𝗲𝗹𝗮𝗯𝗼𝗿𝗮𝘁𝗶𝗼𝗻 𝘀𝗲𝗾𝘂𝗲𝗻𝗰𝗲 # 𝟮: 𝗧𝗵𝗲 𝗻𝗮𝘁𝘂𝗿𝗮𝗹 𝗻𝘂𝗺𝗯𝗲𝗿𝘀 @@ -30,14 +30,14 @@ ### 𝗜𝗻𝗳𝗼𝗿𝗺𝗮𝗹 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻 𝗼𝗳 𝗻𝗮𝘁𝘂𝗿𝗮𝗹 𝗻𝘂𝗺𝗯𝗲𝗿 ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟭 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟭 (𝒯₁.𝐴₁): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₁ ⌜𝟢 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ P⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ 𝖯⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁): (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟮 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟮 (𝒯₁.𝐴₂): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₂ ⌜𝘐𝘧 𝘯 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳, 𝘵𝘩𝘦𝘯 𝘯++ 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂): ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, 𝛷) ⊢ P'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝖯, 𝛷) ⊢ 𝖯'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃): ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P ⟹ Q), P) ⊢ Q⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟮.𝟯 (𝒯₁.𝑃₄): ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗗𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝐷₁): 𝖫𝖾𝗍 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛 𝒟₁ ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. 𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒟 ⊢ P⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. @@ -51,9 +51,9 @@ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₂): ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₃): (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₄): (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(x = y) ⊢ (y = x)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁))⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₅): ((0)++ = 1). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, (Q = R)) ⊢ P'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₆): (2 = (1)++). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₇): (((0)++)++ = 2). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₈): (3 = (2)++). @@ -79,7 +79,7 @@ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₂): ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)). ### 𝟲 𝗶𝘀 𝗻𝗼𝘁 𝗲𝗾𝘂𝗮𝗹 𝘁𝗼 𝟮. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₃): ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, Q) ⊢ (P ⋀ Q)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃))⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₄): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₅): (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₆): ((4)++ ≠ (0)++). @@ -101,9 +101,9 @@ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₂): (6 = (5)++). #### 𝗣𝗿𝗼𝗼𝗳 𝗯𝘆 𝗰𝗼𝗻𝘁𝗿𝗮𝗱𝗶𝗰𝘁𝗶𝗼𝗻 𝗛𝘆𝗽𝗼𝘁𝗵𝗲𝘀𝗶𝘀 (𝒯₁.𝐻₁): (6 = 2). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₆): 𝐼𝑛𝑐(ℋ₁). -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟴 (𝒯₁.𝑃₆₇): (6 ≠ 2). #### 𝗗𝗶𝗿𝗲𝗰𝘁 𝗽𝗿𝗼𝗼𝗳 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₈): ((1)++ = 2). @@ -115,6 +115,6 @@ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₄): (6 ≠ 2). ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟱: 𝘁𝗵𝗲 𝗽𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 𝗼𝗳 𝗺𝗮𝘁𝗵𝗲𝗺𝗮𝘁𝗶𝗰𝗮𝗹 𝗶𝗻𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗔𝘅𝗶𝗼𝗺 𝘀𝗰𝗵𝗲𝗺𝗮 (𝒯₁.𝐴₆) - Principle of mathematical induction: 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₆ ⌜𝘓𝘦𝘵 𝘗(𝘯) 𝘣𝘦 𝘢𝘯𝘺 𝘱𝘳𝘰𝘱𝘦𝘳𝘵𝘺 𝘱𝘦𝘳𝘵𝘢𝘪𝘯𝘪𝘯𝘨 𝘵𝘰 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯. 𝘚𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘗(𝘖) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘢𝘯𝘥 𝘴𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘸𝘩𝘦𝘯𝘦𝘷𝘦𝘳 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘗(𝘯++) 𝘪𝘴 𝘢𝘭𝘴𝘰 𝘵𝘳𝘶𝘦. 𝘛𝘩𝘦𝘯 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₅): (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₁(0) ∧ (𝐏₁(𝐧₅) ⟹ 𝐏₁((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₁(𝐦₃))). +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₅): (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₄(0) ∧ (𝐏₄(𝐧₅) ⟹ 𝐏₄((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₄(𝐦₃))). ### 𝗧𝗵𝗲 𝗻𝘂𝗺𝗯𝗲𝗿 𝘀𝘆𝘀𝘁𝗲𝗺 𝗻 ### 𝗥𝗲𝗰𝘂𝗿𝘀𝗶𝘃𝗲 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻𝘀 diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_latex.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_latex.txt index 34b5c790..9fed01ad 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_latex.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_latex.txt @@ -1 +1 @@ -\mathsf{}\mathsf{}\section{\boldsymbol\mathsf{Theory properties}}}\mathsf{}\boldsymbol\mathsf{Consistency: }}undetermined\mathsf{}\mathsf{}\boldsymbol\mathsf{Stabilized: }}False\mathsf{}\mathsf{}\boldsymbol\mathsf{Extended theory: }}N/A\mathsf{}\section{\boldsymbol\mathsf{Simple-objects declarations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{0}\right\ulcorner, \left\ulcorner\mathit{natural-number}\right\ulcorner, \left\ulcorner\mathit{1}\right\ulcorner, \left\ulcorner\mathit{2}\right\ulcorner, \left\ulcorner\mathit{3}\right\ulcorner, \left\ulcorner\mathit{4}\right\ulcorner, \left\ulcorner\mathit{5}\right\ulcorner, \left\ulcorner\mathit{6}\right\ulcorner\mathsf{ be }\mathit{simple-objects}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Relations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{++}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{Inc}\right\ulcorner\mathsf{ be }\mathit{unary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{\land}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\neq}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{is-a}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{=}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\implies}\right\ulcorner\mathsf{ be }\mathit{binary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Inference rules}}}\mathsf{}\mathsf{The following inference rules are considered valid under this theory:}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{axiom-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒜 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{conjunction-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, Q) ⊢ (P ⋀ Q)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{definition-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equal-terms-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, (Q = R)) ⊢ P'\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equality-commutativity}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(x = y) ⊢ (y = x)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{inconsistency-by-inequality-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{modus-ponens}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner((P ⟹ Q), P) ⊢ Q\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{proof-by-refutation-of-equality}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{variable-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(P, 𝛷) ⊢ P'\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Theory elaboration sequence}}}\mathsf{}# \boldsymbol\mathsf{2}}: \boldsymbol\mathsf{The natural numbers}}\mathsf{}\mathsf{}## \boldsymbol\mathsf{2.1}}: \boldsymbol\mathsf{The peano axioms}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Informal definition of natural number}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.1}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.1}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{1}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{axiom-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{axiom-interpretation}\mathsf{ defined as }\left\ulcorner𝒜 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{1}\mathsf{)}\mathsf{: }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.1}} (\mathit{A}_{1})\mathsf{. }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.2}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.2}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{2}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{2}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{2}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.2}} (\mathit{A}_{2})\mathsf{. }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{variable-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{variable-substitution}\mathsf{ defined as }\left\ulcorner(P, 𝛷) ⊢ P'\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{3}\mathsf{)}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = 0\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{modus-ponens}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{modus-ponens}\mathsf{ defined as }\left\ulcorner((P ⟹ Q), P) ⊢ Q\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{4}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{3})\mathsf{.}\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{1})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Definition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{D}_{1}\mathsf{)}\mathsf{: Let }\mathit{definition}\mathsf{ }\mathcal{D}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{definition-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{definition-interpretation}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{5}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{6}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{7}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{8}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{9}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = (0)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{10}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{9})\mathsf{.}\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.2.3}} (\mathit{P}_{4})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{11}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = ((0)++)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{12}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{11})\mathsf{.}\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{10})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{13}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = (((0)++)++)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{14}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{13})\mathsf{.}\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{12})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equality-commutativity}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equality-commutativity}\mathsf{ defined as }\left\ulcorner(x = y) ⊢ (y = x)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{15}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{5})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equal-terms-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equal-terms-substitution}\mathsf{ defined as }\left\ulcorner(P, (Q = R)) ⊢ P'\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{16}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{6})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{17}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{6})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{18}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{7})\mathsf{. }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{3 is a natural number}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{19}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{7})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{20}\mathsf{)}\mathsf{: }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{. }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{21}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{12})\mathsf{. }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{22}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{23}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{8})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{24}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{. }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{25}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{13})\mathsf{. }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{24})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{26}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{14})\mathsf{. }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.3}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{3}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{3}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{27}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.3}} (\mathit{A}_{3})\mathsf{. }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{4 is not equal to 0.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{28}\mathsf{)}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{27})\mathsf{.}\mathsf{ Let }\mathbf{n}_{2} = 3\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{29}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{28})\mathsf{.}\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.4}} (\mathit{P}_{21})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.6}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{30}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{29})\mathsf{. }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{24})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.4}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{4}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{4}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{31}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.4}} (\mathit{A}_{4})\mathsf{. }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{32}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.4}} (\mathit{A}_{4})\mathsf{. }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{6 is not equal to 2.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{33}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 4\mathsf{, }\mathbf{m}_{1} = 0\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{conjunction-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{conjunction-introduction}\mathsf{ defined as }\left\ulcorner(P, Q) ⊢ (P ⋀ Q)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{34}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ (}\mathit{P}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{26})\mathsf{. }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ (}\mathit{Q}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{1})\mathsf{.}\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }(P, Q) ⊢ (P ⋀ Q)\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{35}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ (}\mathit{P}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{34})\mathsf{. }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{ (}\mathit{Q}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.6}} (\mathit{P}_{30})\mathsf{.}\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }(P, Q) ⊢ (P ⋀ Q)\mathsf{, it follows that }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{36}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{33})\mathsf{.}\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{35})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{37}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{38}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{37})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{39}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{38})\mathsf{. }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{40}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{41}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 5\mathsf{, }\mathbf{m}_{1} = 1\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{42}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = 4\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{43}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{42})\mathsf{. }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{44}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{43})\mathsf{.}\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{26})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{45}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 5\mathsf{, }\mathbf{m}_{1} = 1\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }(P, 𝛷) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{46}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{33})\mathsf{.}\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{35})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{47}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{46})\mathsf{. }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{48}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{49}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{48})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{50}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.2.3}} (\mathit{P}_{4})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{51}\mathsf{)}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{49})\mathsf{. }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{38})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{52}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{51})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }(x = y) ⊢ (y = x)\mathsf{, it follows that }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Proof by contradiction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Hypothesis}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{H}_{1}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ This hypothesis is elaborated in theory }\mathcal{H}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{inconsistency-by-inequality-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{inconsistency-by-inequality-introduction}\mathsf{ defined as }\left\ulcorner((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{66}\mathsf{)}\mathsf{: }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{4} \mathit{=} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{65})\mathsf{. }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.6}} (\mathit{P}_{30})\mathsf{. }\mathsf{Therefore, by the }\mathit{inconsistency-by-inequality-introduction}\mathsf{ inference rule: }((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)\mathsf{, it follows that }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{proof-by-refutation-of-equality}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{proof-by-refutation-of-equality}\mathsf{ defined as }\left\ulcorner(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.8}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{67}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\mathsf{Let }\boldsymbol\mathsf{hyp.}} (\mathit{H}_{1})\mathsf{ be the hypothesis }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{. }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{66})\mathsf{.}\mathsf{Therefore, by the }\mathit{proof-by-refutation-of-equality}\mathsf{ inference rule: }(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)\mathsf{, it follows that }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Direct proof}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{68}\mathsf{)}\mathsf{: }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{69}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{47})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{70}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{45})\mathsf{. }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{51})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{71}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{70})\mathsf{. }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{68})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }(P, (Q = R)) ⊢ P'\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{72}\mathsf{)}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ (}\mathit{P}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{44})\mathsf{. }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ (}\mathit{Q}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{50})\mathsf{.}\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }(P, Q) ⊢ (P ⋀ Q)\mathsf{, it follows that }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{73}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ (}\mathit{P}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{72})\mathsf{. }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{ (}\mathit{Q}\mathsf{) follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{69})\mathsf{.}\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }(P, Q) ⊢ (P ⋀ Q)\mathsf{, it follows that }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{74}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{71})\mathsf{.}\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{73})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }((P ⟹ Q), P) ⊢ Q\mathsf{, it follows that }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.5: the principle of mathematical induction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom schema}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{6}\mathsf{)} - Principle of mathematical induction\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{6}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{75}\mathsf{)}\mathsf{: }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{1}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{1}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom schema}} (\mathit{A}_{6})\mathsf{. }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{1}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{1}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }𝒜 ⊢ P\mathsf{, it follows that }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{1}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{1}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{1}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{The number system n}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Recursive definitions}}\mathsf{} \ No newline at end of file +\mathsf{}\mathsf{}\section{\boldsymbol\mathsf{Theory properties}}}\mathsf{}\boldsymbol\mathsf{Consistency: }}undetermined\mathsf{}\mathsf{}\boldsymbol\mathsf{Stabilized: }}False\mathsf{}\mathsf{}\boldsymbol\mathsf{Extended theory: }}N/A\mathsf{}\section{\boldsymbol\mathsf{Simple-objects declarations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{0}\right\ulcorner, \left\ulcorner\mathit{natural-number}\right\ulcorner, \left\ulcorner\mathit{1}\right\ulcorner, \left\ulcorner\mathit{2}\right\ulcorner, \left\ulcorner\mathit{3}\right\ulcorner, \left\ulcorner\mathit{4}\right\ulcorner, \left\ulcorner\mathit{5}\right\ulcorner, \left\ulcorner\mathit{6}\right\ulcorner\mathsf{ be }\mathit{simple-objects}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Relations}}}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{++}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{Inc}\right\ulcorner\mathsf{ be }\mathit{unary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{\implies}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\neq}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{\land}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{is-a}\right\ulcorner\mathsf{, }\left\ulcorner\mathit{=}\right\ulcorner\mathsf{ be }\mathit{binary}\mathit{-relations}\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Inference rules}}}\mathsf{}\mathsf{The following inference rules are considered valid under this theory:}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{axiom-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{A |- P}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{conjunction-introduction}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{definition-interpretation}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equal-terms-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{equality-commutativity}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{inconsistency-introduction-2}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{((P = Q), (P neq Q)) |- Inc(T)}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{modus-ponens}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{proof-by-refutation-2}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\mathsf{}\mathsf{Let }\left\ulcorner\mathit{variable-substitution}\right\ulcorner\mathsf{ be an }\mathit{inference-rule}\mathsf{ defined as }\left\ulcorner\mathsf{(P, Phi) |- P'}\right\ulcorner\mathsf{ in }\mathcal{U}_{1}\mathsf{.}\mathsf{}\section{\boldsymbol\mathsf{Theory elaboration sequence}}}\mathsf{}# \boldsymbol\mathsf{2}}: \boldsymbol\mathsf{The natural numbers}}\mathsf{}\mathsf{}## \boldsymbol\mathsf{2.1}}: \boldsymbol\mathsf{The peano axioms}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Informal definition of natural number}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.1}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.1}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{1}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{axiom-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{axiom-interpretation}\mathsf{ defined as }\left\ulcorner\mathsf{A |- P}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{1}\mathsf{)}\mathsf{: }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{0 is a natural number.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.1}} (\mathit{A}_{1})\mathsf{. }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.2}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.2}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{2}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{2}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{2}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{If n is a natural number, then n++ is a natural number.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.2}} (\mathit{A}_{2})\mathsf{. }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{variable-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{variable-substitution}\mathsf{ defined as }\left\ulcorner\mathsf{(P, Phi) |- P'}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{3}\mathsf{)}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = 0\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{modus-ponens}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{modus-ponens}\mathsf{ defined as }\left\ulcorner\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{4}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{3})\mathsf{.}\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{1})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Definition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{D}_{1}\mathsf{)}\mathsf{: Let }\mathit{definition}\mathsf{ }\mathcal{D}_{1}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{definition-interpretation}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{definition-interpretation}\mathsf{ defined as }\left\ulcorner𝒟 ⊢ P\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{5}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{6}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{7}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{8}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{9}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = (0)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{10}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{9})\mathsf{.}\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.2.3}} (\mathit{P}_{4})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{11}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = ((0)++)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{12}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{11})\mathsf{.}\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{10})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{13}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = (((0)++)++)++\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{14}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{13})\mathsf{.}\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{12})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equality-commutativity}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equality-commutativity}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{15}\mathsf{)}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{1} \mathit{=} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{5})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{equal-terms-substitution}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{equal-terms-substitution}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{16}\mathsf{)}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{6})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{2} \mathit{=} \left(\mathit{1}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{17}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{2} \mathit{=} \left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{6})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{18}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{7})\mathsf{. }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{3} \mathit{=} \left(\mathit{2}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{3 is a natural number}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{19}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{3} \mathit{=} \left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{7})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{20}\mathsf{)}\mathsf{: }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{. }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{2}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{21}\mathsf{)}\mathsf{: }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{12})\mathsf{. }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{22}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{23}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{4} \mathit{=} \left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{8})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{24}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{. }\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{3}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{19})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{25}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{13})\mathsf{. }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{24})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{26}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{14})\mathsf{. }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.3}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.3}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{3}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{3}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{27}\mathsf{)}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.3}} (\mathit{A}_{3})\mathsf{. }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{4 is not equal to 0.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{28}\mathsf{)}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{2} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{2}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{27})\mathsf{.}\mathsf{ Let }\mathbf{n}_{2} = 3\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{29}\mathsf{)}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{28})\mathsf{.}\left(\mathit{3} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.4}} (\mathit{P}_{21})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.6}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{30}\mathsf{)}\mathsf{: }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{3}\right)\mathit{++} \mathit{\neq} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{29})\mathsf{. }\left(\left(\mathit{3}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{24})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.4}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom}} \boldsymbol\mathsf{2.4}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{4}\mathsf{)}\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{4}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{31}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.4}} (\mathit{A}_{4})\mathsf{. }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{32}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom}} \boldsymbol\mathsf{2.4}} (\mathit{A}_{4})\mathsf{. }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\left(\left(\left(\mathbf{n}_{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{2} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\left(\mathbf{n}_{4}\right)\mathit{++} \mathit{=} \left(\mathbf{m}_{2}\right)\mathit{++}\right)\right) \mathit{\implies} \left(\mathbf{n}_{4} \mathit{=} \mathbf{m}_{2}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{6 is not equal to 2.}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{33}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 4\mathsf{, }\mathbf{m}_{1} = 0\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{conjunction-introduction}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{conjunction-introduction}\mathsf{ defined as }\left\ulcorner\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{34}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{, of the form }\mathbf{P}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{26})\mathsf{. }\left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\mathsf{, of the form }\mathbf{Q}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{1})\mathsf{. }\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{35}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{, of the form }\mathbf{P}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{34})\mathsf{. }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{, of the form }\mathbf{Q}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.6}} (\mathit{P}_{30})\mathsf{. }\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\mathsf{, it follows that }\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{36}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{33})\mathsf{.}\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{35})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{37}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{38}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{37})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{39}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{38})\mathsf{. }\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{4}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{23})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{40}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\mathit{5} \mathit{=} \left(\mathit{4}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{41}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 5\mathsf{, }\mathbf{m}_{1} = 1\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{42}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathbf{n}_{1} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathbf{n}_{1}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{2})\mathsf{.}\mathsf{ Let }\mathbf{n}_{1} = 4\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{43}\mathsf{)}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{42})\mathsf{. }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{44}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{43})\mathsf{.}\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{26})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{45}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathbf{n}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{m}_{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathbf{n}_{3} \mathit{\neq} \mathbf{m}_{1}\right)\right) \mathit{\implies} \left(\left(\mathbf{n}_{3}\right)\mathit{++} \mathit{\neq} \left(\mathbf{m}_{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{31})\mathsf{.}\mathsf{ Let }\mathbf{n}_{3} = 5\mathsf{, }\mathbf{m}_{1} = 1\mathsf{.}\mathsf{Therefore, by the }\mathit{variable-substitution}\mathsf{ inference rule: }\mathsf{(P, Phi) |- P'}\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{46}\mathsf{)}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right) \mathit{\implies} \left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{33})\mathsf{.}\left(\left(\left(\mathit{4} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{0} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{4} \mathit{\neq} \mathit{0}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{35})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{47}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{4}\right)\mathit{++} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{46})\mathsf{. }\left(\left(\mathit{4}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{39})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{48}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{def.}} (\mathit{D}_{1})\mathsf{. }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ is an interpretation of that definition.}\mathsf{Therefore, by the }\mathit{definition-interpretation}\mathsf{ inference rule: }𝒟 ⊢ P\mathsf{, it follows that }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{49}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{48})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{50}\mathsf{)}\mathsf{: }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{0}\right)\mathit{++} \mathit{is-a} \mathit{natural-number}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.2.3}} (\mathit{P}_{4})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{51}\mathsf{)}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{49})\mathsf{. }\left(\left(\left(\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{5}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{38})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{52}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{51})\mathsf{. }\mathsf{Therefore, by the }\mathit{equality-commutativity}\mathsf{ inference rule: }\left(\left(\mathbf{x}_{1} \mathit{=} \mathbf{y}_{1}\right) \mathit{\vdash} \left(\mathbf{y}_{1} \mathit{=} \mathbf{x}_{1}\right)\right)\mathsf{, it follows that }\left(\mathit{6} \mathit{=} \left(\mathit{5}\right)\mathit{++}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Proof by contradiction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Hypothesis}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{H}_{1}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ This hypothesis is elaborated in theory }\mathcal{H}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{inconsistency-introduction-2}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{inconsistency-introduction-2}\mathsf{ defined as }\left\ulcorner\mathsf{((P = Q), (P neq Q)) |- Inc(T)}\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{66}\mathsf{)}\mathsf{: }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\mathsf{Let }\mathsf{(P = Q)}\mathit{ := }\left(\mathit{4} \mathit{=} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{65})\mathsf{. }\mathsf{Let }\mathsf{(P neq Q))}\mathit{ := }\left(\mathit{4} \mathit{\neq} \mathit{0}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} \boldsymbol\mathsf{2.1.6}} (\mathit{P}_{30})\mathsf{. }\mathsf{Therefore, by the }\mathit{inconsistency-introduction-2}\mathsf{ inference rule: }\mathsf{((P = Q), (P neq Q)) |- Inc(T)}\mathsf{, it follows that }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Inference rule}}\mathsf{ (}\mathit{proof-by-refutation-2}\mathsf{)}\mathsf{: Let }\mathit{inference-rule}\mathsf{ }\mathit{proof-by-refutation-2}\mathsf{ defined as }\left\ulcorner(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)\right\ulcorner\mathsf{ be included and considered valid in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}} \boldsymbol\mathsf{2.1.8}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{67}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\mathsf{Let }\boldsymbol\mathsf{hyp.}} (\mathit{H}_{1})\mathsf{ be the hypothesis }\left(\mathit{6} \mathit{=} \mathit{2}\right)\mathsf{. }\mathit{Inc}\left(\mathcal{H}_{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{66})\mathsf{.}\mathsf{Therefore, by the }\mathit{proof-by-refutation-2}\mathsf{ inference rule: }(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)\mathsf{, it follows that }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}#### \boldsymbol\mathsf{Direct proof}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{68}\mathsf{)}\mathsf{: }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\mathit{0}\right)\mathit{++}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{17})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{69}\mathsf{)}\mathsf{: }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{\neq} \left(\mathit{0}\right)\mathit{++}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{47})\mathsf{. }\left(\left(\mathit{0}\right)\mathit{++} \mathit{=} \mathit{1}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{15})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{70}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\left(\mathit{5}\right)\mathit{++} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{45})\mathsf{. }\left(\left(\mathit{5}\right)\mathit{++} \mathit{=} \mathit{6}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{51})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{71}\mathsf{)}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \left(\mathit{1}\right)\mathit{++}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{70})\mathsf{. }\left(\left(\mathit{1}\right)\mathit{++} \mathit{=} \mathit{2}\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{68})\mathsf{.}\mathsf{Therefore, by the }\mathit{equal-terms-substitution}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{2} \mathit{,} \left(\mathbf{x}_{2} \mathit{=} \mathbf{y}_{2}\right)\right) \mathit{\vdash} \mathbf{Q}_{2}\right)\mathsf{, it follows that }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{72}\mathsf{)}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right)\mathsf{, of the form }\mathbf{P}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{44})\mathsf{. }\left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\mathsf{, of the form }\mathbf{Q}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{50})\mathsf{. }\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\mathsf{, it follows that }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{73}\mathsf{)}\mathsf{: }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right)\mathsf{, of the form }\mathbf{P}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{72})\mathsf{. }\left(\mathit{5} \mathit{\neq} \mathit{1}\right)\mathsf{, of the form }\mathbf{Q}_{3}\mathsf{, follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{69})\mathsf{. }\mathsf{Therefore, by the }\mathit{conjunction-introduction}\mathsf{ inference rule: }\left(\left(\mathbf{P}_{3} \mathit{,} \mathbf{Q}_{3}\right) \mathit{\vdash} \left(\mathbf{P}_{3} \mathit{\land} \mathbf{Q}_{3}\right)\right)\mathsf{, it follows that }\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{74}\mathsf{)}\mathsf{: }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left(\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right) \mathit{\implies} \left(\mathit{6} \mathit{\neq} \mathit{2}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{71})\mathsf{.}\left(\left(\left(\mathit{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathit{1} \mathit{is-a} \mathit{natural-number}\right)\right) \mathit{\land} \left(\mathit{5} \mathit{\neq} \mathit{1}\right)\right)\mathsf{ follows from }\boldsymbol\mathsf{prop.}} (\mathit{P}_{73})\mathsf{.}\mathsf{Therefore, by the }\mathit{modus-ponens}\mathsf{ inference rule: }\left(\left(\left(\mathbf{P}_{1} \mathit{\implies} \mathbf{P}_{1}\right) \mathit{,} \mathbf{P}_{1}\right) \mathit{\vdash} \mathbf{Q}_{1}\right)\mathsf{, it follows that }\left(\mathit{6} \mathit{\neq} \mathit{2}\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Axiom 2.5: the principle of mathematical induction}}\mathsf{}\mathsf{}\boldsymbol\mathsf{Axiom schema}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{A}_{6}\mathsf{)} - Principle of mathematical induction\mathsf{: Let }\mathit{axiom}\mathsf{ }\mathcal{A}_{6}\mathsf{ }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ be included (postulated) in }\mathcal{T}_{1}\mathsf{.}\mathsf{}\mathsf{}\boldsymbol\mathsf{Proposition}}\mathsf{ (}\mathcal{T}_{1}\mathsf{.}\mathit{P}_{75}\mathsf{)}\mathsf{: }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{4}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{4}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{.}\mathsf{ }\boldsymbol\mathsf{Proof}}\mathsf{: }\left\ulcorner\text{\sffamily{\itshape{Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n.}}}\right\ulcorner\mathsf{ is postulated by }\boldsymbol\mathsf{axiom schema}} (\mathit{A}_{6})\mathsf{. }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{4}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{4}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{ is a valid formula statement interpreted from that axiom.}\mathsf{Therefore, by the }\mathit{axiom-interpretation}\mathsf{ inference rule: }\mathsf{A |- P}\mathsf{, it follows that }\left(\left(\left(\mathbf{n}_{5} \mathit{is-a} \mathit{natural-number}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathit{0}\right) \mathit{\land} \left(\mathbf{P}_{4}\left(\mathbf{n}_{5}\right) \mathit{\implies} \mathbf{P}_{4}\left(\left(\mathbf{n}_{5}\right)\mathit{++}\right)\right)\right)\right) \mathit{\implies} \left(\left(\mathbf{m}_{3} \mathit{is-a} \mathit{natural-number}\right) \mathit{\implies} \mathbf{P}_{4}\left(\mathbf{m}_{3}\right)\right)\right)\mathsf{. }\mathsf{\qed}\mathsf{}\mathsf{}### \boldsymbol\mathsf{The number system n}}\mathsf{}\mathsf{}### \boldsymbol\mathsf{Recursive definitions}}\mathsf{} \ No newline at end of file diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_plaintext.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_plaintext.txt index 3d21055a..f6d13f26 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_plaintext.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_plaintext.txt @@ -10,19 +10,19 @@ Let "0", "natural-number", "1", "2", "3", "4", "5", "6" be simple-objects in U1. # Relations Let "++", "Inc" be unary-relations in U1. -Let "and", "neq", "is-a", "=", "==>" be binary-relations in U1. +Let "==>", "neq", "and", "is-a", "=" be binary-relations in U1. # Inference rules The following inference rules are considered valid under this theory: -Let "axiom-interpretation" be an inference-rule defined as "𝒜 ⊢ P" in U1. -Let "conjunction-introduction" be an inference-rule defined as "(P, Q) ⊢ (P ⋀ Q)" in U1. +Let "axiom-interpretation" be an inference-rule defined as "A |- P" in U1. +Let "conjunction-introduction" be an inference-rule defined as "((P3 , Q3) |- (P3 and Q3))" in U1. Let "definition-interpretation" be an inference-rule defined as "𝒟 ⊢ P" in U1. -Let "equal-terms-substitution" be an inference-rule defined as "(P, (Q = R)) ⊢ P'" in U1. -Let "equality-commutativity" be an inference-rule defined as "(x = y) ⊢ (y = x)" in U1. -Let "inconsistency-by-inequality-introduction" be an inference-rule defined as "((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)" in U1. -Let "modus-ponens" be an inference-rule defined as "((P ⟹ Q), P) ⊢ Q" in U1. -Let "proof-by-refutation-of-equality" be an inference-rule defined as "(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)" in U1. -Let "variable-substitution" be an inference-rule defined as "(P, 𝛷) ⊢ P'" in U1. +Let "equal-terms-substitution" be an inference-rule defined as "((P2 , (x2 = y2)) |- Q2)" in U1. +Let "equality-commutativity" be an inference-rule defined as "((x1 = y1) |- (y1 = x1))" in U1. +Let "inconsistency-introduction-2" be an inference-rule defined as "((P = Q), (P neq Q)) |- Inc(T)" in U1. +Let "modus-ponens" be an inference-rule defined as "(((P1 ==> P1) , P1) |- Q1)" in U1. +Let "proof-by-refutation-2" be an inference-rule defined as "(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)" in U1. +Let "variable-substitution" be an inference-rule defined as "(P, Phi) |- P'" in U1. # Theory elaboration sequence # 2: The natural numbers @@ -30,91 +30,91 @@ Let "variable-substitution" be an inference-rule defined as "(P, 𝛷) ⊢ P'" i ### Informal definition of natural number ### Axiom 2.1 Axiom 2.1 (T1.A1): Let axiom A1 "0 is a natural number." be included (postulated) in T1. -Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "𝒜 ⊢ P" be included and considered valid in T1. -Proposition (T1.P1): (0 is-a natural-number). Proof: "0 is a natural number." is postulated by axiom 2.1 (A1). (0 is-a natural-number) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that (0 is-a natural-number). QED +Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "A |- P" be included and considered valid in T1. +Proposition (T1.P1): (0 is-a natural-number). Proof: "0 is a natural number." is postulated by axiom 2.1 (A1). (0 is-a natural-number) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that (0 is-a natural-number). QED ### Axiom 2.2 Axiom 2.2 (T1.A2): Let axiom A2 "If n is a natural number, then n++ is a natural number." be included (postulated) in T1. -Proposition (T1.P2): ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)). Proof: "If n is a natural number, then n++ is a natural number." is postulated by axiom 2.2 (A2). ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)). QED -Inference rule (variable-substitution): Let inference-rule variable-substitution defined as "(P, 𝛷) ⊢ P'" be included and considered valid in T1. -Proposition (T1.P3): ((0 is-a natural-number) ==> ((0)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = 0.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((0 is-a natural-number) ==> ((0)++ is-a natural-number)). QED -Inference rule (modus-ponens): Let inference-rule modus-ponens defined as "((P ⟹ Q), P) ⊢ Q" be included and considered valid in T1. -Proposition 2.2.3 (T1.P4): ((0)++ is-a natural-number). Proof: ((0 is-a natural-number) ==> ((0)++ is-a natural-number)) follows from prop. (P3).(0 is-a natural-number) follows from prop. (P1).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that ((0)++ is-a natural-number). QED +Proposition (T1.P2): ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)). Proof: "If n is a natural number, then n++ is a natural number." is postulated by axiom 2.2 (A2). ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)). QED +Inference rule (variable-substitution): Let inference-rule variable-substitution defined as "(P, Phi) |- P'" be included and considered valid in T1. +Proposition (T1.P3): ((0 is-a natural-number) ==> ((0)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = 0.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((0 is-a natural-number) ==> ((0)++ is-a natural-number)). QED +Inference rule (modus-ponens): Let inference-rule modus-ponens defined as "(((P1 ==> P1) , P1) |- Q1)" be included and considered valid in T1. +Proposition 2.2.3 (T1.P4): ((0)++ is-a natural-number). Proof: ((0 is-a natural-number) ==> ((0)++ is-a natural-number)) follows from prop. (P3).(0 is-a natural-number) follows from prop. (P1).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that ((0)++ is-a natural-number). QED Definition (T1.D1): Let definition D1 "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" be included (postulated) in T1. Inference rule (definition-interpretation): Let inference-rule definition-interpretation defined as "𝒟 ⊢ P" be included and considered valid in T1. Proposition (T1.P5): (1 = (0)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (1 = (0)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (1 = (0)++). QED Proposition (T1.P6): (2 = ((0)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (2 = ((0)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (2 = ((0)++)++). QED Proposition (T1.P7): (3 = (((0)++)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (3 = (((0)++)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (3 = (((0)++)++)++). QED Proposition (T1.P8): (4 = ((((0)++)++)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (4 = ((((0)++)++)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (4 = ((((0)++)++)++)++). QED -Proposition (T1.P9): (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = (0)++.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)). QED -Proposition (T1.P10): (((0)++)++ is-a natural-number). Proof: (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)) follows from prop. (P9).((0)++ is-a natural-number) follows from prop. 2.2.3 (P4).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that (((0)++)++ is-a natural-number). QED -Proposition (T1.P11): ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = ((0)++)++.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)). QED -Proposition (T1.P12): ((((0)++)++)++ is-a natural-number). Proof: ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)) follows from prop. (P11).(((0)++)++ is-a natural-number) follows from prop. (P10).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that ((((0)++)++)++ is-a natural-number). QED -Proposition (T1.P13): (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = (((0)++)++)++.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). QED -Proposition (T1.P14): (((((0)++)++)++)++ is-a natural-number). Proof: (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)) follows from prop. (P13).((((0)++)++)++ is-a natural-number) follows from prop. (P12).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that (((((0)++)++)++)++ is-a natural-number). QED -Inference rule (equality-commutativity): Let inference-rule equality-commutativity defined as "(x = y) ⊢ (y = x)" be included and considered valid in T1. -Proposition (T1.P15): ((0)++ = 1). Proof: (1 = (0)++) follows from prop. (P5). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that ((0)++ = 1). QED -Inference rule (equal-terms-substitution): Let inference-rule equal-terms-substitution defined as "(P, (Q = R)) ⊢ P'" be included and considered valid in T1. -Proposition (T1.P16): (2 = (1)++). Proof: (2 = ((0)++)++) follows from prop. (P6). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (2 = (1)++). QED -Proposition (T1.P17): (((0)++)++ = 2). Proof: (2 = ((0)++)++) follows from prop. (P6). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that (((0)++)++ = 2). QED -Proposition (T1.P18): (3 = (2)++). Proof: (3 = (((0)++)++)++) follows from prop. (P7). (((0)++)++ = 2) follows from prop. (P17).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (3 = (2)++). QED +Proposition (T1.P9): (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = (0)++.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)). QED +Proposition (T1.P10): (((0)++)++ is-a natural-number). Proof: (((0)++ is-a natural-number) ==> (((0)++)++ is-a natural-number)) follows from prop. (P9).((0)++ is-a natural-number) follows from prop. 2.2.3 (P4).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that (((0)++)++ is-a natural-number). QED +Proposition (T1.P11): ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = ((0)++)++.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)). QED +Proposition (T1.P12): ((((0)++)++)++ is-a natural-number). Proof: ((((0)++)++ is-a natural-number) ==> ((((0)++)++)++ is-a natural-number)) follows from prop. (P11).(((0)++)++ is-a natural-number) follows from prop. (P10).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that ((((0)++)++)++ is-a natural-number). QED +Proposition (T1.P13): (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = (((0)++)++)++.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). QED +Proposition (T1.P14): (((((0)++)++)++)++ is-a natural-number). Proof: (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)) follows from prop. (P13).((((0)++)++)++ is-a natural-number) follows from prop. (P12).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that (((((0)++)++)++)++ is-a natural-number). QED +Inference rule (equality-commutativity): Let inference-rule equality-commutativity defined as "((x1 = y1) |- (y1 = x1))" be included and considered valid in T1. +Proposition (T1.P15): ((0)++ = 1). Proof: (1 = (0)++) follows from prop. (P5). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that ((0)++ = 1). QED +Inference rule (equal-terms-substitution): Let inference-rule equal-terms-substitution defined as "((P2 , (x2 = y2)) |- Q2)" be included and considered valid in T1. +Proposition (T1.P16): (2 = (1)++). Proof: (2 = ((0)++)++) follows from prop. (P6). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (2 = (1)++). QED +Proposition (T1.P17): (((0)++)++ = 2). Proof: (2 = ((0)++)++) follows from prop. (P6). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that (((0)++)++ = 2). QED +Proposition (T1.P18): (3 = (2)++). Proof: (3 = (((0)++)++)++) follows from prop. (P7). (((0)++)++ = 2) follows from prop. (P17).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (3 = (2)++). QED ### 3 is a natural number -Proposition (T1.P19): ((((0)++)++)++ = 3). Proof: (3 = (((0)++)++)++) follows from prop. (P7). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that ((((0)++)++)++ = 3). QED -Proposition (T1.P20): ((2)++ = 3). Proof: ((((0)++)++)++ = 3) follows from prop. (P19). (((0)++)++ = 2) follows from prop. (P17).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((2)++ = 3). QED -Proposition 2.1.4 (T1.P21): (3 is-a natural-number). Proof: ((((0)++)++)++ is-a natural-number) follows from prop. (P12). ((((0)++)++)++ = 3) follows from prop. (P19).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (3 is-a natural-number). QED +Proposition (T1.P19): ((((0)++)++)++ = 3). Proof: (3 = (((0)++)++)++) follows from prop. (P7). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that ((((0)++)++)++ = 3). QED +Proposition (T1.P20): ((2)++ = 3). Proof: ((((0)++)++)++ = 3) follows from prop. (P19). (((0)++)++ = 2) follows from prop. (P17).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((2)++ = 3). QED +Proposition 2.1.4 (T1.P21): (3 is-a natural-number). Proof: ((((0)++)++)++ is-a natural-number) follows from prop. (P12). ((((0)++)++)++ = 3) follows from prop. (P19).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (3 is-a natural-number). QED Proposition (T1.P22): (4 = ((((0)++)++)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (4 = ((((0)++)++)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (4 = ((((0)++)++)++)++). QED -Proposition (T1.P23): (((((0)++)++)++)++ = 4). Proof: (4 = ((((0)++)++)++)++) follows from prop. (P8). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that (((((0)++)++)++)++ = 4). QED -Proposition (T1.P24): ((3)++ = 4). Proof: (((((0)++)++)++)++ = 4) follows from prop. (P23). ((((0)++)++)++ = 3) follows from prop. (P19).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((3)++ = 4). QED -Proposition (T1.P25): (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). Proof: (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)) follows from prop. (P13). ((3)++ = 4) follows from prop. (P24).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). QED -Proposition (T1.P26): (4 is-a natural-number). Proof: (((((0)++)++)++)++ is-a natural-number) follows from prop. (P14). (((((0)++)++)++)++ = 4) follows from prop. (P23).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (4 is-a natural-number). QED +Proposition (T1.P23): (((((0)++)++)++)++ = 4). Proof: (4 = ((((0)++)++)++)++) follows from prop. (P8). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that (((((0)++)++)++)++ = 4). QED +Proposition (T1.P24): ((3)++ = 4). Proof: (((((0)++)++)++)++ = 4) follows from prop. (P23). ((((0)++)++)++ = 3) follows from prop. (P19).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((3)++ = 4). QED +Proposition (T1.P25): (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). Proof: (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)) follows from prop. (P13). ((3)++ = 4) follows from prop. (P24).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (((((0)++)++)++ is-a natural-number) ==> (((((0)++)++)++)++ is-a natural-number)). QED +Proposition (T1.P26): (4 is-a natural-number). Proof: (((((0)++)++)++)++ is-a natural-number) follows from prop. (P14). (((((0)++)++)++)++ = 4) follows from prop. (P23).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (4 is-a natural-number). QED ### Axiom 2.3 Axiom 2.3 (T1.A3): Let axiom A3 "0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n." be included (postulated) in T1. -Proposition (T1.P27): ((n2 is-a natural-number) ==> ((n2)++ neq 0)). Proof: "0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n." is postulated by axiom 2.3 (A3). ((n2 is-a natural-number) ==> ((n2)++ neq 0)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that ((n2 is-a natural-number) ==> ((n2)++ neq 0)). QED +Proposition (T1.P27): ((n2 is-a natural-number) ==> ((n2)++ neq 0)). Proof: "0 is not the successor of any natural number; i.e., we have n++ 0 for every natural number n." is postulated by axiom 2.3 (A3). ((n2 is-a natural-number) ==> ((n2)++ neq 0)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that ((n2 is-a natural-number) ==> ((n2)++ neq 0)). QED ### 4 is not equal to 0. -Proposition (T1.P28): ((3 is-a natural-number) ==> ((3)++ neq 0)). Proof: ((n2 is-a natural-number) ==> ((n2)++ neq 0)) follows from prop. (P27). Let n2 = 3.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((3 is-a natural-number) ==> ((3)++ neq 0)). QED -Proposition (T1.P29): ((3)++ neq 0). Proof: ((3 is-a natural-number) ==> ((3)++ neq 0)) follows from prop. (P28).(3 is-a natural-number) follows from prop. 2.1.4 (P21).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that ((3)++ neq 0). QED -Proposition 2.1.6 (T1.P30): (4 neq 0). Proof: ((3)++ neq 0) follows from prop. (P29). ((3)++ = 4) follows from prop. (P24).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (4 neq 0). QED +Proposition (T1.P28): ((3 is-a natural-number) ==> ((3)++ neq 0)). Proof: ((n2 is-a natural-number) ==> ((n2)++ neq 0)) follows from prop. (P27). Let n2 = 3.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((3 is-a natural-number) ==> ((3)++ neq 0)). QED +Proposition (T1.P29): ((3)++ neq 0). Proof: ((3 is-a natural-number) ==> ((3)++ neq 0)) follows from prop. (P28).(3 is-a natural-number) follows from prop. 2.1.4 (P21).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that ((3)++ neq 0). QED +Proposition 2.1.6 (T1.P30): (4 neq 0). Proof: ((3)++ neq 0) follows from prop. (P29). ((3)++ = 4) follows from prop. (P24).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (4 neq 0). QED ### Axiom 2.4 Axiom 2.4 (T1.A4): Let axiom A4 "Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m." be included (postulated) in T1. -Proposition (T1.P31): ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)). Proof: "Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m." is postulated by axiom 2.4 (A4). ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)). QED -Proposition (T1.P32): ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)). Proof: "Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m." is postulated by axiom 2.4 (A4). ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)). QED +Proposition (T1.P31): ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)). Proof: "Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m." is postulated by axiom 2.4 (A4). ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)). QED +Proposition (T1.P32): ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)). Proof: "Different natural numbers must have different successors; i.e., if n, m are natural numbers and n m, then n++ m++. Equivalently, if n++ = m++, then we must have n = m." is postulated by axiom 2.4 (A4). ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that ((((n4 is-a natural-number) and (m2 is-a natural-number)) and ((n4)++ = (m2)++)) ==> (n4 = m2)). QED ### 6 is not equal to 2. -Proposition (T1.P33): ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 4, m1 = 0.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)). QED -Inference rule (conjunction-introduction): Let inference-rule conjunction-introduction defined as "(P, Q) ⊢ (P ⋀ Q)" be included and considered valid in T1. -Proposition (T1.P34): ((4 is-a natural-number) and (0 is-a natural-number)). Proof: (4 is-a natural-number) (P) follows from prop. (P26). (0 is-a natural-number) (Q) follows from prop. (P1).Therefore, by the conjunction-introduction inference rule: (P, Q) ⊢ (P ⋀ Q), it follows that ((4 is-a natural-number) and (0 is-a natural-number)). QED -Proposition (T1.P35): (((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)). Proof: ((4 is-a natural-number) and (0 is-a natural-number)) (P) follows from prop. (P34). (4 neq 0) (Q) follows from prop. 2.1.6 (P30).Therefore, by the conjunction-introduction inference rule: (P, Q) ⊢ (P ⋀ Q), it follows that (((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)). QED -Proposition (T1.P36): ((4)++ neq (0)++). Proof: ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)) follows from prop. (P33).(((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) follows from prop. (P35).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that ((4)++ neq (0)++). QED +Proposition (T1.P33): ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 4, m1 = 0.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)). QED +Inference rule (conjunction-introduction): Let inference-rule conjunction-introduction defined as "((P3 , Q3) |- (P3 and Q3))" be included and considered valid in T1. +Proposition (T1.P34): ((4 is-a natural-number) and (0 is-a natural-number)). Proof: (4 is-a natural-number), of the form P3, follows from prop. (P26). (0 is-a natural-number), of the form Q3, follows from prop. (P1). Therefore, by the conjunction-introduction inference rule: ((P3 , Q3) |- (P3 and Q3)), it follows that ((4 is-a natural-number) and (0 is-a natural-number)). QED +Proposition (T1.P35): (((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)). Proof: ((4 is-a natural-number) and (0 is-a natural-number)), of the form P3, follows from prop. (P34). (4 neq 0), of the form Q3, follows from prop. 2.1.6 (P30). Therefore, by the conjunction-introduction inference rule: ((P3 , Q3) |- (P3 and Q3)), it follows that (((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)). QED +Proposition (T1.P36): ((4)++ neq (0)++). Proof: ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)) follows from prop. (P33).(((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) follows from prop. (P35).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that ((4)++ neq (0)++). QED Proposition (T1.P37): (5 = (((((0)++)++)++)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (5 = (((((0)++)++)++)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (5 = (((((0)++)++)++)++)++). QED -Proposition (T1.P38): ((((((0)++)++)++)++)++ = 5). Proof: (5 = (((((0)++)++)++)++)++) follows from prop. (P37). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that ((((((0)++)++)++)++)++ = 5). QED -Proposition (T1.P39): ((4)++ = 5). Proof: ((((((0)++)++)++)++)++ = 5) follows from prop. (P38). (((((0)++)++)++)++ = 4) follows from prop. (P23).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((4)++ = 5). QED -Proposition (T1.P40): (5 = (4)++). Proof: ((4)++ = 5) follows from prop. (P39). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that (5 = (4)++). QED -Proposition (T1.P41): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 5, m1 = 1.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). QED -Proposition (T1.P42): ((4 is-a natural-number) ==> ((4)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = 4.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((4 is-a natural-number) ==> ((4)++ is-a natural-number)). QED -Proposition (T1.P43): ((4 is-a natural-number) ==> (5 is-a natural-number)). Proof: ((4 is-a natural-number) ==> ((4)++ is-a natural-number)) follows from prop. (P42). ((4)++ = 5) follows from prop. (P39).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((4 is-a natural-number) ==> (5 is-a natural-number)). QED -Proposition (T1.P44): (5 is-a natural-number). Proof: ((4 is-a natural-number) ==> (5 is-a natural-number)) follows from prop. (P43).(4 is-a natural-number) follows from prop. (P26).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that (5 is-a natural-number). QED -Proposition (T1.P45): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 5, m1 = 1.Therefore, by the variable-substitution inference rule: (P, 𝛷) ⊢ P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). QED -Proposition (T1.P46): ((4)++ neq (0)++). Proof: ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)) follows from prop. (P33).(((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) follows from prop. (P35).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that ((4)++ neq (0)++). QED -Proposition (T1.P47): (5 neq (0)++). Proof: ((4)++ neq (0)++) follows from prop. (P46). ((4)++ = 5) follows from prop. (P39).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (5 neq (0)++). QED +Proposition (T1.P38): ((((((0)++)++)++)++)++ = 5). Proof: (5 = (((((0)++)++)++)++)++) follows from prop. (P37). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that ((((((0)++)++)++)++)++ = 5). QED +Proposition (T1.P39): ((4)++ = 5). Proof: ((((((0)++)++)++)++)++ = 5) follows from prop. (P38). (((((0)++)++)++)++ = 4) follows from prop. (P23).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((4)++ = 5). QED +Proposition (T1.P40): (5 = (4)++). Proof: ((4)++ = 5) follows from prop. (P39). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that (5 = (4)++). QED +Proposition (T1.P41): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 5, m1 = 1.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). QED +Proposition (T1.P42): ((4 is-a natural-number) ==> ((4)++ is-a natural-number)). Proof: ((n1 is-a natural-number) ==> ((n1)++ is-a natural-number)) follows from prop. (P2). Let n1 = 4.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((4 is-a natural-number) ==> ((4)++ is-a natural-number)). QED +Proposition (T1.P43): ((4 is-a natural-number) ==> (5 is-a natural-number)). Proof: ((4 is-a natural-number) ==> ((4)++ is-a natural-number)) follows from prop. (P42). ((4)++ = 5) follows from prop. (P39).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((4 is-a natural-number) ==> (5 is-a natural-number)). QED +Proposition (T1.P44): (5 is-a natural-number). Proof: ((4 is-a natural-number) ==> (5 is-a natural-number)) follows from prop. (P43).(4 is-a natural-number) follows from prop. (P26).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that (5 is-a natural-number). QED +Proposition (T1.P45): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). Proof: ((((n3 is-a natural-number) and (m1 is-a natural-number)) and (n3 neq m1)) ==> ((n3)++ neq (m1)++)) follows from prop. (P31). Let n3 = 5, m1 = 1.Therefore, by the variable-substitution inference rule: (P, Phi) |- P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)). QED +Proposition (T1.P46): ((4)++ neq (0)++). Proof: ((((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) ==> ((4)++ neq (0)++)) follows from prop. (P33).(((4 is-a natural-number) and (0 is-a natural-number)) and (4 neq 0)) follows from prop. (P35).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that ((4)++ neq (0)++). QED +Proposition (T1.P47): (5 neq (0)++). Proof: ((4)++ neq (0)++) follows from prop. (P46). ((4)++ = 5) follows from prop. (P39).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (5 neq (0)++). QED Proposition (T1.P48): (6 = ((((((0)++)++)++)++)++)++). Proof: "We define 1 to be the number 0++, 2 to be the number (0++)++, 3 to be the number ((0++)++)++,etc. (In other words, 1 := 0++, 2 := 1++, 3 := 2++, etc. In this text I use "x := y" to denote the statement that x is defined to equal y.)" is postulated by def. (D1). (6 = ((((((0)++)++)++)++)++)++) is an interpretation of that definition.Therefore, by the definition-interpretation inference rule: 𝒟 ⊢ P, it follows that (6 = ((((((0)++)++)++)++)++)++). QED -Proposition (T1.P49): (((((((0)++)++)++)++)++)++ = 6). Proof: (6 = ((((((0)++)++)++)++)++)++) follows from prop. (P48). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that (((((((0)++)++)++)++)++)++ = 6). QED -Proposition (T1.P50): (1 is-a natural-number). Proof: ((0)++ is-a natural-number) follows from prop. 2.2.3 (P4). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (1 is-a natural-number). QED -Proposition (T1.P51): ((5)++ = 6). Proof: (((((((0)++)++)++)++)++)++ = 6) follows from prop. (P49). ((((((0)++)++)++)++)++ = 5) follows from prop. (P38).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((5)++ = 6). QED -Proposition (T1.P52): (6 = (5)++). Proof: ((5)++ = 6) follows from prop. (P51). Therefore, by the equality-commutativity inference rule: (x = y) ⊢ (y = x), it follows that (6 = (5)++). QED +Proposition (T1.P49): (((((((0)++)++)++)++)++)++ = 6). Proof: (6 = ((((((0)++)++)++)++)++)++) follows from prop. (P48). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that (((((((0)++)++)++)++)++)++ = 6). QED +Proposition (T1.P50): (1 is-a natural-number). Proof: ((0)++ is-a natural-number) follows from prop. 2.2.3 (P4). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (1 is-a natural-number). QED +Proposition (T1.P51): ((5)++ = 6). Proof: (((((((0)++)++)++)++)++)++ = 6) follows from prop. (P49). ((((((0)++)++)++)++)++ = 5) follows from prop. (P38).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((5)++ = 6). QED +Proposition (T1.P52): (6 = (5)++). Proof: ((5)++ = 6) follows from prop. (P51). Therefore, by the equality-commutativity inference rule: ((x1 = y1) |- (y1 = x1)), it follows that (6 = (5)++). QED #### Proof by contradiction Hypothesis (T1.H1): (6 = 2). This hypothesis is elaborated in theory H1. -Inference rule (inconsistency-by-inequality-introduction): Let inference-rule inconsistency-by-inequality-introduction defined as "((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)" be included and considered valid in T1. -Proposition (T1.P66): Inc(H1). Proof: (4 = 0) follows from prop. (P65). (4 neq 0) follows from prop. 2.1.6 (P30). Therefore, by the inconsistency-by-inequality-introduction inference rule: ((P = Q), (P ≠ Q)) ⊢ Inc(𝒯), it follows that Inc(H1). QED -Inference rule (proof-by-refutation-of-equality): Let inference-rule proof-by-refutation-of-equality defined as "(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)" be included and considered valid in T1. -Proposition 2.1.8 (T1.P67): (6 neq 2). Proof: Let hyp. (H1) be the hypothesis (6 = 2). Inc(H1) follows from prop. (P66).Therefore, by the proof-by-refutation-of-equality inference rule: (ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q), it follows that (6 neq 2). QED +Inference rule (inconsistency-introduction-2): Let inference-rule inconsistency-introduction-2 defined as "((P = Q), (P neq Q)) |- Inc(T)" be included and considered valid in T1. +Proposition (T1.P66): Inc(H1). Proof: Let (P = Q) := (4 = 0) follows from prop. (P65). Let (P neq Q)) := (4 neq 0) follows from prop. 2.1.6 (P30). Therefore, by the inconsistency-introduction-2 inference rule: ((P = Q), (P neq Q)) |- Inc(T), it follows that Inc(H1). QED +Inference rule (proof-by-refutation-2): Let inference-rule proof-by-refutation-2 defined as "(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)" be included and considered valid in T1. +Proposition 2.1.8 (T1.P67): (6 neq 2). Proof: Let hyp. (H1) be the hypothesis (6 = 2). Inc(H1) follows from prop. (P66).Therefore, by the proof-by-refutation-2 inference rule: (𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸), it follows that (6 neq 2). QED #### Direct proof -Proposition (T1.P68): ((1)++ = 2). Proof: (((0)++)++ = 2) follows from prop. (P17). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((1)++ = 2). QED -Proposition (T1.P69): (5 neq 1). Proof: (5 neq (0)++) follows from prop. (P47). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that (5 neq 1). QED -Proposition (T1.P70): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)) follows from prop. (P45). ((5)++ = 6) follows from prop. (P51).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)). QED -Proposition (T1.P71): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)) follows from prop. (P70). ((1)++ = 2) follows from prop. (P68).Therefore, by the equal-terms-substitution inference rule: (P, (Q = R)) ⊢ P', it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)). QED -Proposition (T1.P72): ((5 is-a natural-number) and (1 is-a natural-number)). Proof: (5 is-a natural-number) (P) follows from prop. (P44). (1 is-a natural-number) (Q) follows from prop. (P50).Therefore, by the conjunction-introduction inference rule: (P, Q) ⊢ (P ⋀ Q), it follows that ((5 is-a natural-number) and (1 is-a natural-number)). QED -Proposition (T1.P73): (((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)). Proof: ((5 is-a natural-number) and (1 is-a natural-number)) (P) follows from prop. (P72). (5 neq 1) (Q) follows from prop. (P69).Therefore, by the conjunction-introduction inference rule: (P, Q) ⊢ (P ⋀ Q), it follows that (((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)). QED -Proposition (T1.P74): (6 neq 2). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)) follows from prop. (P71).(((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) follows from prop. (P73).Therefore, by the modus-ponens inference rule: ((P ⟹ Q), P) ⊢ Q, it follows that (6 neq 2). QED +Proposition (T1.P68): ((1)++ = 2). Proof: (((0)++)++ = 2) follows from prop. (P17). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((1)++ = 2). QED +Proposition (T1.P69): (5 neq 1). Proof: (5 neq (0)++) follows from prop. (P47). ((0)++ = 1) follows from prop. (P15).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that (5 neq 1). QED +Proposition (T1.P70): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> ((5)++ neq (1)++)) follows from prop. (P45). ((5)++ = 6) follows from prop. (P51).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)). QED +Proposition (T1.P71): ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq (1)++)) follows from prop. (P70). ((1)++ = 2) follows from prop. (P68).Therefore, by the equal-terms-substitution inference rule: ((P2 , (x2 = y2)) |- Q2), it follows that ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)). QED +Proposition (T1.P72): ((5 is-a natural-number) and (1 is-a natural-number)). Proof: (5 is-a natural-number), of the form P3, follows from prop. (P44). (1 is-a natural-number), of the form Q3, follows from prop. (P50). Therefore, by the conjunction-introduction inference rule: ((P3 , Q3) |- (P3 and Q3)), it follows that ((5 is-a natural-number) and (1 is-a natural-number)). QED +Proposition (T1.P73): (((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)). Proof: ((5 is-a natural-number) and (1 is-a natural-number)), of the form P3, follows from prop. (P72). (5 neq 1), of the form Q3, follows from prop. (P69). Therefore, by the conjunction-introduction inference rule: ((P3 , Q3) |- (P3 and Q3)), it follows that (((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)). QED +Proposition (T1.P74): (6 neq 2). Proof: ((((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) ==> (6 neq 2)) follows from prop. (P71).(((5 is-a natural-number) and (1 is-a natural-number)) and (5 neq 1)) follows from prop. (P73).Therefore, by the modus-ponens inference rule: (((P1 ==> P1) , P1) |- Q1), it follows that (6 neq 2). QED ### Axiom 2.5: the principle of mathematical induction Axiom schema (T1.A6) - Principle of mathematical induction: Let axiom A6 "Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n." be included (postulated) in T1. -Proposition (T1.P75): (((n5 is-a natural-number) and (P1(0) and (P1(n5) ==> P1((n5)++)))) ==> ((m3 is-a natural-number) ==> P1(m3))). Proof: "Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n." is postulated by axiom schema (A6). (((n5 is-a natural-number) and (P1(0) and (P1(n5) ==> P1((n5)++)))) ==> ((m3 is-a natural-number) ==> P1(m3))) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: 𝒜 ⊢ P, it follows that (((n5 is-a natural-number) and (P1(0) and (P1(n5) ==> P1((n5)++)))) ==> ((m3 is-a natural-number) ==> P1(m3))). QED +Proposition (T1.P75): (((n5 is-a natural-number) and (P4(0) and (P4(n5) ==> P4((n5)++)))) ==> ((m3 is-a natural-number) ==> P4(m3))). Proof: "Let P(n) be any property pertaining to a natural number n. Suppose that P(O) is true, and suppose that whenever P(n) is true, P(n++) is also true. Then P(n) is true for every natural number n." is postulated by axiom schema (A6). (((n5 is-a natural-number) and (P4(0) and (P4(n5) ==> P4((n5)++)))) ==> ((m3 is-a natural-number) ==> P4(m3))) is a valid formula statement interpreted from that axiom.Therefore, by the axiom-interpretation inference rule: A |- P, it follows that (((n5 is-a natural-number) and (P4(0) and (P4(n5) ==> P4((n5)++)))) ==> ((m3 is-a natural-number) ==> P4(m3))). QED ### The number system n ### Recursive definitions diff --git a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_unicode.txt b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_unicode.txt index 2ade0260..8dd03985 100644 --- a/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_unicode.txt +++ b/theory/build/tao_2006_2_1_the_peano_axioms_report_proof_enus_unicode.txt @@ -10,19 +10,19 @@ # 𝗥𝗲𝗹𝗮𝘁𝗶𝗼𝗻𝘀 𝖫𝖾𝗍 ⌜++⌝, ⌜𝐼𝑛𝑐⌝ 𝖻𝖾 𝑢𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜∧⌝, ⌜≠⌝, ⌜𝑖𝑠-𝑎⌝, ⌜=⌝, ⌜⟹⌝ 𝖻𝖾 𝑏𝑖𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜⟹⌝, ⌜≠⌝, ⌜∧⌝, ⌜𝑖𝑠-𝑎⌝, ⌜=⌝ 𝖻𝖾 𝑏𝑖𝑛𝑎𝑟𝑦-𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛𝑠 𝗂𝗇 𝒰₁. # 𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲𝘀 𝖳𝗁𝖾 𝖿𝗈𝗅𝗅𝗈𝗐𝗂𝗇𝗀 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾𝗌 𝖺𝗋𝖾 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗎𝗇𝖽𝖾𝗋 𝗍𝗁𝗂𝗌 𝗍𝗁𝖾𝗈𝗋𝗒: -𝖫𝖾𝗍 ⌜𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ P⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, Q) ⊢ (P ⋀ Q)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ 𝖯⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃))⌝ 𝗂𝗇 𝒰₁. 𝖫𝖾𝗍 ⌜𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒟 ⊢ P⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, (Q = R)) ⊢ P'⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(x = y) ⊢ (y = x)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P ⟹ Q), P) ⊢ Q⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)⌝ 𝗂𝗇 𝒰₁. -𝖫𝖾𝗍 ⌜𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, 𝛷) ⊢ P'⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁))⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)⌝ 𝗂𝗇 𝒰₁. +𝖫𝖾𝗍 ⌜𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛⌝ 𝖻𝖾 𝖺𝗇 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝖯, 𝛷) ⊢ 𝖯'⌝ 𝗂𝗇 𝒰₁. # 𝗧𝗵𝗲𝗼𝗿𝘆 𝗲𝗹𝗮𝗯𝗼𝗿𝗮𝘁𝗶𝗼𝗻 𝘀𝗲𝗾𝘂𝗲𝗻𝗰𝗲 # 𝟮: 𝗧𝗵𝗲 𝗻𝗮𝘁𝘂𝗿𝗮𝗹 𝗻𝘂𝗺𝗯𝗲𝗿𝘀 @@ -30,91 +30,91 @@ ### 𝗜𝗻𝗳𝗼𝗿𝗺𝗮𝗹 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻 𝗼𝗳 𝗻𝗮𝘁𝘂𝗿𝗮𝗹 𝗻𝘂𝗺𝗯𝗲𝗿 ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟭 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟭 (𝒯₁.𝐴₁): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₁ ⌜𝟢 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ P⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁): (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ⌜𝟢 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟭 (𝐴₁). (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒜 ⊢ 𝖯⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁): (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ⌜𝟢 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟭 (𝐴₁). (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟮 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟮 (𝒯₁.𝐴₂): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₂ ⌜𝘐𝘧 𝘯 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳, 𝘵𝘩𝘦𝘯 𝘯++ 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂): ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘐𝘧 𝘯 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳, 𝘵𝘩𝘦𝘯 𝘯++ 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟮 (𝐴₂). ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, 𝛷) ⊢ P'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃): ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = 0.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P ⟹ Q), P) ⊢ Q⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟮.𝟯 (𝒯₁.𝑃₄): ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃).(0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂): ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘐𝘧 𝘯 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳, 𝘵𝘩𝘦𝘯 𝘯++ 𝘪𝘴 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟮 (𝐴₂). ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝖯, 𝛷) ⊢ 𝖯'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃): ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = 0.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟮.𝟯 (𝒯₁.𝑃₄): ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃).(0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ 𝗗𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝐷₁): 𝖫𝖾𝗍 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛 𝒟₁ ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. 𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜𝒟 ⊢ P⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅): (1 = (0)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (1 = (0)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (1 = (0)++). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆): (2 = ((0)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (2 = ((0)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (2 = ((0)++)++). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇): (3 = (((0)++)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (3 = (((0)++)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (3 = (((0)++)++)++). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₈): (4 = ((((0)++)++)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (4 = ((((0)++)++)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 = ((((0)++)++)++)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₉): (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = (0)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₀): (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₉).((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟮.𝟯 (𝑃₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₁): ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = ((0)++)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₂): ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₁).(((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₀).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₃): (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = (((0)++)++)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₄): (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₃).((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₂).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(x = y) ⊢ (y = x)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₅): ((0)++ = 1). 𝗣𝗿𝗼𝗼𝗳: (1 = (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0)++ = 1). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, (Q = R)) ⊢ P'⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₆): (2 = (1)++). 𝗣𝗿𝗼𝗼𝗳: (2 = ((0)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (2 = (1)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₇): (((0)++)++ = 2). 𝗣𝗿𝗼𝗼𝗳: (2 = ((0)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++)++ = 2). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₈): (3 = (2)++). 𝗣𝗿𝗼𝗼𝗳: (3 = (((0)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇). (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (3 = (2)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₉): (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = (0)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₀): (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₉).((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟮.𝟯 (𝑃₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₁): ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = ((0)++)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₂): ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₁).(((0)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₀).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₃): (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = (((0)++)++)++.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₄): (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₃).((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₂).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁))⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₅): ((0)++ = 1). 𝗣𝗿𝗼𝗼𝗳: (1 = (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((0)++ = 1). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₆): (2 = (1)++). 𝗣𝗿𝗼𝗼𝗳: (2 = ((0)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (2 = (1)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₇): (((0)++)++ = 2). 𝗣𝗿𝗼𝗼𝗳: (2 = ((0)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((0)++)++ = 2). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₈): (3 = (2)++). 𝗣𝗿𝗼𝗼𝗳: (3 = (((0)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇). (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (3 = (2)++). ∎ ### 𝟯 𝗶𝘀 𝗮 𝗻𝗮𝘁𝘂𝗿𝗮𝗹 𝗻𝘂𝗺𝗯𝗲𝗿 -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₉): ((((0)++)++)++ = 3). 𝗣𝗿𝗼𝗼𝗳: (3 = (((0)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++)++ = 3). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₀): ((2)++ = 3). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉). (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((2)++ = 3). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟰 (𝒯₁.𝑃₂₁): (3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₂). ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₁₉): ((((0)++)++)++ = 3). 𝗣𝗿𝗼𝗼𝗳: (3 = (((0)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((0)++)++)++ = 3). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₀): ((2)++ = 3). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉). (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((2)++ = 3). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟰 (𝒯₁.𝑃₂₁): (3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₂). ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₂): (4 = ((((0)++)++)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (4 = ((((0)++)++)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 = ((((0)++)++)++)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₃): (((((0)++)++)++)++ = 4). 𝗣𝗿𝗼𝗼𝗳: (4 = ((((0)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₈). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++)++ = 4). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₄): ((3)++ = 4). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃). ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3)++ = 4). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₅): (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₃). ((3)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₆): (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₄). (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₃): (((((0)++)++)++)++ = 4). 𝗣𝗿𝗼𝗼𝗳: (4 = ((((0)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₈). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++)++ = 4). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₄): ((3)++ = 4). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃). ((((0)++)++)++ = 3) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3)++ = 4). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₅): (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₃). ((3)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((0)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₆): (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: (((((0)++)++)++)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₄). (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟯 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟯 (𝒯₁.𝐴₃): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₃ ⌜𝟢 𝘪𝘴 𝘯𝘰𝘵 𝘵𝘩𝘦 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳 𝘰𝘧 𝘢𝘯𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳; 𝘪.𝘦., 𝘸𝘦 𝘩𝘢𝘷𝘦 𝘯++ ≠ 𝟢 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₇): ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝟢 𝘪𝘴 𝘯𝘰𝘵 𝘵𝘩𝘦 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳 𝘰𝘧 𝘢𝘯𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳; 𝘪.𝘦., 𝘸𝘦 𝘩𝘢𝘷𝘦 𝘯++ ≠ 𝟢 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟯 (𝐴₃). ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₇): ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝟢 𝘪𝘴 𝘯𝘰𝘵 𝘵𝘩𝘦 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳 𝘰𝘧 𝘢𝘯𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳; 𝘪.𝘦., 𝘸𝘦 𝘩𝘢𝘷𝘦 𝘯++ ≠ 𝟢 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟯 (𝐴₃). ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)). ∎ ### 𝟰 𝗶𝘀 𝗻𝗼𝘁 𝗲𝗾𝘂𝗮𝗹 𝘁𝗼 𝟬. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₈): ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₇). 𝖫𝖾𝗍 𝐧₂ = 3.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₉): ((3)++ ≠ 0). 𝗣𝗿𝗼𝗼𝗳: ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₈).(3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟰 (𝑃₂₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3)++ ≠ 0). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟲 (𝒯₁.𝑃₃₀): (4 ≠ 0). 𝗣𝗿𝗼𝗼𝗳: ((3)++ ≠ 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₉). ((3)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 ≠ 0). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₈): ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₂)++ ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₇). 𝖫𝖾𝗍 𝐧₂ = 3.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₂₉): ((3)++ ≠ 0). 𝗣𝗿𝗼𝗼𝗳: ((3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((3)++ ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₈).(3 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟰 (𝑃₂₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((3)++ ≠ 0). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟲 (𝒯₁.𝑃₃₀): (4 ≠ 0). 𝗣𝗿𝗼𝗼𝗳: ((3)++ ≠ 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₉). ((3)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₄).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (4 ≠ 0). ∎ ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟰 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟰 (𝒯₁.𝐴₄): 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₄ ⌜𝘋𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳𝘴; 𝘪.𝘦., 𝘪𝘧 𝘯, 𝘮 𝘢𝘳𝘦 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘢𝘯𝘥 𝘯 ≠ 𝘮, 𝘵𝘩𝘦𝘯 𝘯++ ≠ 𝘮++. 𝘌𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵𝘭𝘺, 𝘪𝘧 𝘯++ = 𝘮++, 𝘵𝘩𝘦𝘯 𝘸𝘦 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘯 = 𝘮.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₁): ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘋𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳𝘴; 𝘪.𝘦., 𝘪𝘧 𝘯, 𝘮 𝘢𝘳𝘦 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘢𝘯𝘥 𝘯 ≠ 𝘮, 𝘵𝘩𝘦𝘯 𝘯++ ≠ 𝘮++. 𝘌𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵𝘭𝘺, 𝘪𝘧 𝘯++ = 𝘮++, 𝘵𝘩𝘦𝘯 𝘸𝘦 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘯 = 𝘮.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟰 (𝐴₄). ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₂): ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘋𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳𝘴; 𝘪.𝘦., 𝘪𝘧 𝘯, 𝘮 𝘢𝘳𝘦 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘢𝘯𝘥 𝘯 ≠ 𝘮, 𝘵𝘩𝘦𝘯 𝘯++ ≠ 𝘮++. 𝘌𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵𝘭𝘺, 𝘪𝘧 𝘯++ = 𝘮++, 𝘵𝘩𝘦𝘯 𝘸𝘦 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘯 = 𝘮.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟰 (𝐴₄). ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₁): ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘋𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳𝘴; 𝘪.𝘦., 𝘪𝘧 𝘯, 𝘮 𝘢𝘳𝘦 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘢𝘯𝘥 𝘯 ≠ 𝘮, 𝘵𝘩𝘦𝘯 𝘯++ ≠ 𝘮++. 𝘌𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵𝘭𝘺, 𝘪𝘧 𝘯++ = 𝘮++, 𝘵𝘩𝘦𝘯 𝘸𝘦 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘯 = 𝘮.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟰 (𝐴₄). ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₂): ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘋𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵 𝘴𝘶𝘤𝘤𝘦𝘴𝘴𝘰𝘳𝘴; 𝘪.𝘦., 𝘪𝘧 𝘯, 𝘮 𝘢𝘳𝘦 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳𝘴 𝘢𝘯𝘥 𝘯 ≠ 𝘮, 𝘵𝘩𝘦𝘯 𝘯++ ≠ 𝘮++. 𝘌𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵𝘭𝘺, 𝘪𝘧 𝘯++ = 𝘮++, 𝘵𝘩𝘦𝘯 𝘸𝘦 𝘮𝘶𝘴𝘵 𝘩𝘢𝘷𝘦 𝘯 = 𝘮.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝟮.𝟰 (𝐴₄). ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((𝐧₄ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₂ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((𝐧₄)++ = (𝐦₂)++)) ⟹ (𝐧₄ = 𝐦₂)). ∎ ### 𝟲 𝗶𝘀 𝗻𝗼𝘁 𝗲𝗾𝘂𝗮𝗹 𝘁𝗼 𝟮. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₃): ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 4, 𝐦₁ = 0.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(P, Q) ⊢ (P ⋀ Q)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₄): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) (𝑃) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₆). (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) (𝑄) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, Q) ⊢ (P ⋀ Q), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₅): (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) (𝑃) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₄). (4 ≠ 0) (𝑄) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟲 (𝑃₃₀).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, Q) ⊢ (P ⋀ Q), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₆): ((4)++ ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₃).(((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ ≠ (0)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₃): ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 4, 𝐦₁ = 0.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃))⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₄): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐏₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₆). (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐐₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₅): (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐏₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₄). (4 ≠ 0), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐐₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟲 (𝑃₃₀). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₆): ((4)++ ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₃).(((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ ≠ (0)++). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₇): (5 = (((((0)++)++)++)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (5 = (((((0)++)++)++)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 = (((((0)++)++)++)++)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₈): ((((((0)++)++)++)++)++ = 5). 𝗣𝗿𝗼𝗼𝗳: (5 = (((((0)++)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₇). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((((0)++)++)++)++)++ = 5). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₉): ((4)++ = 5). 𝗣𝗿𝗼𝗼𝗳: ((((((0)++)++)++)++)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₈). (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ = 5). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₀): (5 = (4)++). 𝗣𝗿𝗼𝗼𝗳: ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 = (4)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₁): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 5, 𝐦₁ = 1.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₂): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = 4.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₃): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₂). ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₄): (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₃).(4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₆).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₅): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 5, 𝐦₁ = 1.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, 𝛷) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₆): ((4)++ ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₃).(((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ ≠ (0)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₇): (5 ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((4)++ ≠ (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₆). ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 ≠ (0)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₈): ((((((0)++)++)++)++)++ = 5). 𝗣𝗿𝗼𝗼𝗳: (5 = (((((0)++)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₇). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((((0)++)++)++)++)++ = 5). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₃₉): ((4)++ = 5). 𝗣𝗿𝗼𝗼𝗳: ((((((0)++)++)++)++)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₈). (((((0)++)++)++)++ = 4) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ = 5). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₀): (5 = (4)++). 𝗣𝗿𝗼𝗼𝗳: ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 = (4)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₁): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 5, 𝐦₁ = 1.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₂): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((𝐧₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((𝐧₁)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂). 𝖫𝖾𝗍 𝐧₁ = 4.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₃): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₂). ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₄): (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₃).(4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₂₆).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₅): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₁). 𝖫𝖾𝗍 𝐧₃ = 5, 𝐦₁ = 1.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝖯, 𝛷) ⊢ 𝖯', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₆): ((4)++ ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₃).(((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((4)++ ≠ (0)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₇): (5 ≠ (0)++). 𝗣𝗿𝗼𝗼𝗳: ((4)++ ≠ (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₆). ((4)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 ≠ (0)++). ∎ 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₈): (6 = ((((((0)++)++)++)++)++)++). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘞𝘦 𝘥𝘦𝘧𝘪𝘯𝘦 𝟣 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝟢++, 𝟤 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 (𝟢++)++, 𝟥 𝘵𝘰 𝘣𝘦 𝘵𝘩𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 ((𝟢++)++)++,𝘦𝘵𝘤. (𝘐𝘯 𝘰𝘵𝘩𝘦𝘳 𝘸𝘰𝘳𝘥𝘴, 𝟣 := 𝟢++, 𝟤 := 𝟣++, 𝟥 := 𝟤++, 𝘦𝘵𝘤. 𝘐𝘯 𝘵𝘩𝘪𝘴 𝘵𝘦𝘹𝘵 𝘐 𝘶𝘴𝘦 "𝘹 := 𝘺" 𝘵𝘰 𝘥𝘦𝘯𝘰𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘢𝘵𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘢𝘵 𝘹 𝘪𝘴 𝘥𝘦𝘧𝘪𝘯𝘦𝘥 𝘵𝘰 𝘦𝘲𝘶𝘢𝘭 𝘺.)⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗱𝗲𝗳. (𝐷₁). (6 = ((((((0)++)++)++)++)++)++) 𝗂𝗌 𝖺𝗇 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖺𝗍𝗂𝗈𝗇 𝗈𝖿 𝗍𝗁𝖺𝗍 𝖽𝖾𝖿𝗂𝗇𝗂𝗍𝗂𝗈𝗇.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒟 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 = ((((((0)++)++)++)++)++)++). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₉): (((((((0)++)++)++)++)++)++ = 6). 𝗣𝗿𝗼𝗼𝗳: (6 = ((((((0)++)++)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₈). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((((0)++)++)++)++)++)++ = 6). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₀): (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟮.𝟯 (𝑃₄). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₁): ((5)++ = 6). 𝗣𝗿𝗼𝗼𝗳: (((((((0)++)++)++)++)++)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₉). ((((((0)++)++)++)++)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₈).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((5)++ = 6). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₂): (6 = (5)++). 𝗣𝗿𝗼𝗼𝗳: ((5)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₁). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (x = y) ⊢ (y = x), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 = (5)++). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₄₉): (((((((0)++)++)++)++)++)++ = 6). 𝗣𝗿𝗼𝗼𝗳: (6 = ((((((0)++)++)++)++)++)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₈). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((((((0)++)++)++)++)++)++ = 6). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₀): (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). 𝗣𝗿𝗼𝗼𝗳: ((0)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟮.𝟯 (𝑃₄). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₁): ((5)++ = 6). 𝗣𝗿𝗼𝗼𝗳: (((((((0)++)++)++)++)++)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₉). ((((((0)++)++)++)++)++ = 5) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₃₈).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((5)++ = 6). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₅₂): (6 = (5)++). 𝗣𝗿𝗼𝗼𝗳: ((5)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₁). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑐𝑜𝑚𝑚𝑢𝑡𝑎𝑡𝑖𝑣𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐱₁ = 𝐲₁) ⊢ (𝐲₁ = 𝐱₁)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 = (5)++). ∎ #### 𝗣𝗿𝗼𝗼𝗳 𝗯𝘆 𝗰𝗼𝗻𝘁𝗿𝗮𝗱𝗶𝗰𝘁𝗶𝗼𝗻 𝗛𝘆𝗽𝗼𝘁𝗵𝗲𝘀𝗶𝘀 (𝒯₁.𝐻₁): (6 = 2). 𝖳𝗁𝗂𝗌 𝗁𝗒𝗉𝗈𝗍𝗁𝖾𝗌𝗂𝗌 𝗂𝗌 𝖾𝗅𝖺𝖻𝗈𝗋𝖺𝗍𝖾𝖽 𝗂𝗇 𝗍𝗁𝖾𝗈𝗋𝗒 ℋ₁. -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((P = Q), (P ≠ Q)) ⊢ Inc(𝒯)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₆): 𝐼𝑛𝑐(ℋ₁). 𝗣𝗿𝗼𝗼𝗳: (4 = 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₅). (4 ≠ 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟲 (𝑃₃₀). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑏𝑦-𝑖𝑛𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P = Q), (P ≠ Q)) ⊢ Inc(𝒯), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 𝐼𝑛𝑐(ℋ₁). ∎ -𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟴 (𝒯₁.𝑃₆₇): (6 ≠ 2). 𝗣𝗿𝗼𝗼𝗳: 𝖫𝖾𝗍 𝗵𝘆𝗽. (𝐻₁) 𝖻𝖾 𝗍𝗁𝖾 𝗁𝗒𝗉𝗈𝗍𝗁𝖾𝗌𝗂𝗌 (6 = 2). 𝐼𝑛𝑐(ℋ₁) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₆).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-𝑜𝑓-𝑒𝑞𝑢𝑎𝑙𝑖𝑡𝑦 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (ℋ(P=Q), Inc(ℋ)) ⊢ (P ≠ Q), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 ≠ 2). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₆): 𝐼𝑛𝑐(ℋ₁). 𝗣𝗿𝗼𝗼𝗳: 𝖫𝖾𝗍 (𝑷 = 𝑸) := (4 = 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₅). 𝖫𝖾𝗍 (𝑷 ≠ 𝑸) := (4 ≠ 0) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. 𝟮.𝟭.𝟲 (𝑃₃₀). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑖𝑛𝑐𝑜𝑛𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑦-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛-2 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝑷 = 𝑸), (𝑷 ≠ 𝑸)) ⊢ 𝐼𝑛𝑐(𝒯), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 𝐼𝑛𝑐(ℋ₁). ∎ +𝗜𝗻𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗿𝘂𝗹𝗲 (𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2): 𝖫𝖾𝗍 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑒-𝑟𝑢𝑙𝑒 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2 𝖽𝖾𝖿𝗂𝗇𝖾𝖽 𝖺𝗌 ⌜(𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸)⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 𝖺𝗇𝖽 𝖼𝗈𝗇𝗌𝗂𝖽𝖾𝗋𝖾𝖽 𝗏𝖺𝗅𝗂𝖽 𝗂𝗇 𝒯₁. +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 𝟮.𝟭.𝟴 (𝒯₁.𝑃₆₇): (6 ≠ 2). 𝗣𝗿𝗼𝗼𝗳: 𝖫𝖾𝗍 𝗵𝘆𝗽. (𝐻₁) 𝖻𝖾 𝗍𝗁𝖾 𝗁𝗒𝗉𝗈𝗍𝗁𝖾𝗌𝗂𝗌 (6 = 2). 𝐼𝑛𝑐(ℋ₁) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₆).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑝𝑟𝑜𝑜𝑓-𝑏𝑦-𝑟𝑒𝑓𝑢𝑡𝑎𝑡𝑖𝑜𝑛-2 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (𝓗 𝑎𝑠𝑠𝑢𝑚𝑒 (𝑷 = 𝑸), 𝐼𝑛𝑐(𝓗)) ⊢ (𝑷 ≠ 𝑸), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 ≠ 2). ∎ #### 𝗗𝗶𝗿𝗲𝗰𝘁 𝗽𝗿𝗼𝗼𝗳 -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₈): ((1)++ = 2). 𝗣𝗿𝗼𝗼𝗳: (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((1)++ = 2). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₉): (5 ≠ 1). 𝗣𝗿𝗼𝗼𝗳: (5 ≠ (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₇). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 ≠ 1). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₀): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₅). ((5)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₁): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₀). ((1)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₈).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, (Q = R)) ⊢ P', 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₂): ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) (𝑃) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₄). (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) (𝑄) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₀).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, Q) ⊢ (P ⋀ Q), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₃): (((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)). 𝗣𝗿𝗼𝗼𝗳: ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) (𝑃) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₂). (5 ≠ 1) (𝑄) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₉).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (P, Q) ⊢ (P ⋀ Q), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)). ∎ -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₄): (6 ≠ 2). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₁).(((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((P ⟹ Q), P) ⊢ Q, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 ≠ 2). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₈): ((1)++ = 2). 𝗣𝗿𝗼𝗼𝗳: (((0)++)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₇). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((1)++ = 2). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₆₉): (5 ≠ 1). 𝗣𝗿𝗼𝗼𝗳: (5 ≠ (0)++) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₇). ((0)++ = 1) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₁₅).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (5 ≠ 1). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₀): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₅). ((5)++ = 6) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₁).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₁): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ (1)++)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₀). ((1)++ = 2) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₈).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑒𝑞𝑢𝑎𝑙-𝑡𝑒𝑟𝑚𝑠-𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₂ , (𝐱₂ = 𝐲₂)) ⊢ 𝐐₂), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₂): ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). 𝗣𝗿𝗼𝗼𝗳: (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐏₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₄₄). (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐐₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₅₀). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₃): (((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)). 𝗣𝗿𝗼𝗼𝗳: ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐏₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₂). (5 ≠ 1), 𝗈𝖿 𝗍𝗁𝖾 𝖿𝗈𝗋𝗆 𝐐₃, 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₆₉). 𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑐𝑜𝑛𝑗𝑢𝑛𝑐𝑡𝑖𝑜𝑛-𝑖𝑛𝑡𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: ((𝐏₃ , 𝐐₃) ⊢ (𝐏₃ ∧ 𝐐₃)), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₄): (6 ≠ 2). 𝗣𝗿𝗼𝗼𝗳: ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ (6 ≠ 2)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₁).(((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝖿𝗋𝗈𝗆 𝗽𝗿𝗼𝗽. (𝑃₇₃).𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑚𝑜𝑑𝑢𝑠-𝑝𝑜𝑛𝑒𝑛𝑠 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: (((𝐏₁ ⟹ 𝐏₁) , 𝐏₁) ⊢ 𝐐₁), 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (6 ≠ 2). ∎ ### 𝗔𝘅𝗶𝗼𝗺 𝟮.𝟱: 𝘁𝗵𝗲 𝗽𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 𝗼𝗳 𝗺𝗮𝘁𝗵𝗲𝗺𝗮𝘁𝗶𝗰𝗮𝗹 𝗶𝗻𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗔𝘅𝗶𝗼𝗺 𝘀𝗰𝗵𝗲𝗺𝗮 (𝒯₁.𝐴₆) - Principle of mathematical induction: 𝖫𝖾𝗍 𝑎𝑥𝑖𝑜𝑚 𝒜₆ ⌜𝘓𝘦𝘵 𝘗(𝘯) 𝘣𝘦 𝘢𝘯𝘺 𝘱𝘳𝘰𝘱𝘦𝘳𝘵𝘺 𝘱𝘦𝘳𝘵𝘢𝘪𝘯𝘪𝘯𝘨 𝘵𝘰 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯. 𝘚𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘗(𝘖) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘢𝘯𝘥 𝘴𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘸𝘩𝘦𝘯𝘦𝘷𝘦𝘳 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘗(𝘯++) 𝘪𝘴 𝘢𝘭𝘴𝘰 𝘵𝘳𝘶𝘦. 𝘛𝘩𝘦𝘯 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝖻𝖾 𝗂𝗇𝖼𝗅𝗎𝖽𝖾𝖽 (𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽) 𝗂𝗇 𝒯₁. -𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₅): (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₁(0) ∧ (𝐏₁(𝐧₅) ⟹ 𝐏₁((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₁(𝐦₃))). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘓𝘦𝘵 𝘗(𝘯) 𝘣𝘦 𝘢𝘯𝘺 𝘱𝘳𝘰𝘱𝘦𝘳𝘵𝘺 𝘱𝘦𝘳𝘵𝘢𝘪𝘯𝘪𝘯𝘨 𝘵𝘰 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯. 𝘚𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘗(𝘖) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘢𝘯𝘥 𝘴𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘸𝘩𝘦𝘯𝘦𝘷𝘦𝘳 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘗(𝘯++) 𝘪𝘴 𝘢𝘭𝘴𝘰 𝘵𝘳𝘶𝘦. 𝘛𝘩𝘦𝘯 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝘀𝗰𝗵𝗲𝗺𝗮 (𝐴₆). (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₁(0) ∧ (𝐏₁(𝐧₅) ⟹ 𝐏₁((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₁(𝐦₃))) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ P, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₁(0) ∧ (𝐏₁(𝐧₅) ⟹ 𝐏₁((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₁(𝐦₃))). ∎ +𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (𝒯₁.𝑃₇₅): (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₄(0) ∧ (𝐏₄(𝐧₅) ⟹ 𝐏₄((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₄(𝐦₃))). 𝗣𝗿𝗼𝗼𝗳: ⌜𝘓𝘦𝘵 𝘗(𝘯) 𝘣𝘦 𝘢𝘯𝘺 𝘱𝘳𝘰𝘱𝘦𝘳𝘵𝘺 𝘱𝘦𝘳𝘵𝘢𝘪𝘯𝘪𝘯𝘨 𝘵𝘰 𝘢 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯. 𝘚𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘗(𝘖) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘢𝘯𝘥 𝘴𝘶𝘱𝘱𝘰𝘴𝘦 𝘵𝘩𝘢𝘵 𝘸𝘩𝘦𝘯𝘦𝘷𝘦𝘳 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦, 𝘗(𝘯++) 𝘪𝘴 𝘢𝘭𝘴𝘰 𝘵𝘳𝘶𝘦. 𝘛𝘩𝘦𝘯 𝘗(𝘯) 𝘪𝘴 𝘵𝘳𝘶𝘦 𝘧𝘰𝘳 𝘦𝘷𝘦𝘳𝘺 𝘯𝘢𝘵𝘶𝘳𝘢𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘯.⌝ 𝗂𝗌 𝗉𝗈𝗌𝗍𝗎𝗅𝖺𝗍𝖾𝖽 𝖻𝗒 𝗮𝘅𝗶𝗼𝗺 𝘀𝗰𝗵𝗲𝗺𝗮 (𝐴₆). (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₄(0) ∧ (𝐏₄(𝐧₅) ⟹ 𝐏₄((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₄(𝐦₃))) 𝗂𝗌 𝖺 𝗏𝖺𝗅𝗂𝖽 𝖿𝗈𝗋𝗆𝗎𝗅𝖺 𝗌𝗍𝖺𝗍𝖾𝗆𝖾𝗇𝗍 𝗂𝗇𝗍𝖾𝗋𝗉𝗋𝖾𝗍𝖾𝖽 𝖿𝗋𝗈𝗆 𝗍𝗁𝖺𝗍 𝖺𝗑𝗂𝗈𝗆.𝖳𝗁𝖾𝗋𝖾𝖿𝗈𝗋𝖾, 𝖻𝗒 𝗍𝗁𝖾 𝑎𝑥𝑖𝑜𝑚-𝑖𝑛𝑡𝑒𝑟𝑝𝑟𝑒𝑡𝑎𝑡𝑖𝑜𝑛 𝗂𝗇𝖿𝖾𝗋𝖾𝗇𝖼𝖾 𝗋𝗎𝗅𝖾: 𝒜 ⊢ 𝖯, 𝗂𝗍 𝖿𝗈𝗅𝗅𝗈𝗐𝗌 𝗍𝗁𝖺𝗍 (((𝐧₅ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐏₄(0) ∧ (𝐏₄(𝐧₅) ⟹ 𝐏₄((𝐧₅)++)))) ⟹ ((𝐦₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ 𝐏₄(𝐦₃))). ∎ ### 𝗧𝗵𝗲 𝗻𝘂𝗺𝗯𝗲𝗿 𝘀𝘆𝘀𝘁𝗲𝗺 𝗻 ### 𝗥𝗲𝗰𝘂𝗿𝘀𝗶𝘃𝗲 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻𝘀 diff --git a/theory/package/tao_2006_2_1_the_peano_axioms.py b/theory/package/tao_2006_2_1_the_peano_axioms.py index 543a5cb4..33151f99 100644 --- a/theory/package/tao_2006_2_1_the_peano_axioms.py +++ b/theory/package/tao_2006_2_1_the_peano_axioms.py @@ -53,7 +53,7 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio p002 = t.i.axiom_interpretation.infer_statement(a04, ( (n | u.r.is_a | natural_number) | u.r.implies | ( (n & plusplus) | u.r.is_a | natural_number))) - p003 = t.i.variable_substitution.infer_statement(p_hypothesis=p002, phi=tuple([zero])) + p003 = t.i.variable_substitution.infer_statement(p=p002, phi=tuple([zero])) p004 = t.i.mp.infer_statement(p003, p001, ref='2.2.3') # DEFINITION 2.1.3 @@ -78,7 +78,7 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio u.f(u.r.equal, four, ((((zero & plusplus) & plusplus) & plusplus) & plusplus))) zero_plusplus = (zero & plusplus) - p009 = t.i.variable_substitution.infer_statement(p_hypothesis=p002, phi=zero_plusplus) + p009 = t.i.variable_substitution.infer_statement(p=p002, phi=zero_plusplus) p010 = t.i.mp.infer_statement(p009, p004) zero_plus_plus_plusplus = u.f(plusplus, zero_plusplus) p011 = t.i.variable_substitution.infer_statement(p002, zero_plus_plus_plusplus) @@ -161,13 +161,13 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio # Take 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₃₁): ((((𝐧₃ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (𝐦₁ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (𝐧₃ ≠ 𝐦₁)) ⟹ ((𝐧₃)++ ≠ (𝐦₁)++)). # Substitute 𝐧₃ with 4, and 𝐦₁ with 0. # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₃₂): ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). - p033 = t.i.variable_substitution.infer_statement(p_hypothesis=p032, phi=(four, zero)) + p033 = t.i.variable_substitution.infer_statement(p=p032, phi=(four, zero)) # It follows that ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)) ⟹ ((4)++ ≠ (0)++)). # Pair two true propositions (4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) and (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻(P₃₄): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). - p034 = t.i.conjunction_introduction.infer_statement(p_hypothesis=p027, q=p001) + p034 = t.i.conjunction_introduction.infer_statement(p=p027, q=p001) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₃₅): (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (4 ≠ 0)). - p035 = t.i.conjunction_introduction.infer_statement(p_hypothesis=p034, q=p031) + p035 = t.i.conjunction_introduction.infer_statement(p=p034, q=p031) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₃₆): ((4)++ ≠ (0)++). p036 = t.i.modus_ponens.infer_statement(p033, p035) five = u.o.declare(symbol='5', auto_index=False) @@ -181,7 +181,7 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₀): (5 = (4)++). p040 = t.i.equality_commutativity.infer_statement(p039) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₁): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). - p041 = t.i.variable_substitution.infer_statement(p_hypothesis=p032, phi=(five, one)) + p041 = t.i.variable_substitution.infer_statement(p=p032, phi=(five, one)) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₂): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ ((4)++ 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). p042 = t.i.variable_substitution.infer_statement(p002, four) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₃): ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ⟹ (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). @@ -189,11 +189,11 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻(P₄₄): (5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟). p044 = t.i.modus_ponens.infer_statement(p043, p027) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₅): ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ (5 ≠ 1)) ⟹ ((5)++ ≠ (1)++)). - p045 = t.i.variable_substitution.infer_statement(p_hypothesis=p032, phi=(five, one)) + p045 = t.i.variable_substitution.infer_statement(p=p032, phi=(five, one)) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₆): ((4)++ ≠ (0)++). p046 = t.i.modus_ponens.infer_statement(p033, p035) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻 (P₄₇): (5 ≠ (0)++). - p047 = t.i.equal_terms_substitution.infer_statement(p_hypothesis=p046, x_equal_y=p039) + p047 = t.i.equal_terms_substitution.infer_statement(p=p046, x_equal_y=p039) six = u.o.declare(symbol='6', auto_index=False) # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻: (6 = ((((((0)++)++)++)++)++)++). p049 = t.i.definition_interpretation.infer_statement(d02, u.f(u.r.equal, six, @@ -204,7 +204,7 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio p054 = t.i.equal_terms_substitution.infer_statement(p004, p015) p051 = t.i.equal_terms_substitution.infer_statement(p050, p038) # (6 = (5)++) - p057 = t.i.equality_commutativity.infer_statement(p_eq_q_hypothesis=p051) + p057 = t.i.equality_commutativity.infer_statement(x_equal_y=p051) t.open_section('Proof by contradiction', section_parent=s55, numbering=False) @@ -218,46 +218,46 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio # Then 5++ = 1++, # ((5)++ = 2) h1_p2 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement( - p_hypothesis=hypothesis_statement, x_equal_y=p057) + p=hypothesis_statement, x_equal_y=p057) # ((5)++ = (1)++) - h1_p3 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement( - p_hypothesis=h1_p2, x_equal_y=p016) + h1_p3 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement(p=h1_p2, + x_equal_y=p016) # so by Axiom 2.4 we have 5 = 1 # ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) - h1_p4 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement( - p_hypothesis=p044, q=p054) + h1_p4 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement(p=p044, + q=p054) # (((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((5)++ = (1)++)) - h1_p5 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement( - p_hypothesis=h1_p4, q=h1_p3) + h1_p5 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement(p=h1_p4, + q=h1_p3) # ((((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((5)++ = (1)++)) ⟹ (5 = 1)) - h1_p6 = h1.hypothesis_child_theory.i.variable_substitution.infer_statement( - p_hypothesis=p032b, phi=tuple([five, one])) + h1_p6 = h1.hypothesis_child_theory.i.variable_substitution.infer_statement(p=p032b, + phi=tuple([five, one])) # (5 = 1) h1_p7 = h1.hypothesis_child_theory.i.modus_ponens.infer_statement(p_implies_q=h1_p6, - p_hypothesis=h1_p5) + p=h1_p5) # so that 4++ = 0++. # ((4)++ = 1) - h1_p8 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement( - p_hypothesis=h1_p7, x_equal_y=p040) + h1_p8 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement(p=h1_p7, + x_equal_y=p040) # ((4)++ = (0)++) - h1_p9 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement( - p_hypothesis=h1_p8, x_equal_y=p005) + h1_p9 = h1.hypothesis_child_theory.i.equal_terms_substitution.infer_statement(p=h1_p8, + x_equal_y=p005) # ((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) - h1_p10 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement( - p_hypothesis=p027, q=p001) + h1_p10 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement(p=p027, + q=p001) # (((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((4)++ = (0)++)) - h1_p11 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement( - p_hypothesis=h1_p10, q=h1_p9) + h1_p11 = h1.hypothesis_child_theory.i.conjunction_introduction.infer_statement(p=h1_p10, + q=h1_p9) # ((((4 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (0 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)) ∧ ((4)++ = (0)++)) ⟹ (4 = 0)) - h1_p12 = h1.hypothesis_child_theory.i.variable_substitution.infer_statement( - p_hypothesis=p032b, phi=tuple([four, zero])) + h1_p12 = h1.hypothesis_child_theory.i.variable_substitution.infer_statement(p=p032b, + phi=tuple([four, zero])) # (4 = 0) # By Axiom 2.4 again we then have 4 = 0, which contradicts our previous proposition. h1_p071 = h1.hypothesis_child_theory.i.modus_ponens.infer_statement(p_implies_q=h1_p12, - p_hypothesis=h1_p11) - p072 = t.i.inconsistency_introduction_1.infer_statement(p_eq_q_hypothesis=h1_p071, - x_neq_y_hypothesis=p031, inconsistent_theory=h1.hypothesis_child_theory) + p=h1_p11) + p072 = t.i.inconsistency_introduction_2.infer_statement(x_eq_y=h1_p071, x_neq_y=p031, + inconsistent_theory=h1.hypothesis_child_theory) p073 = t.i.proof_by_refutation_2.infer_statement(p_eq_q_hypothesis=h1, inc_hypothesis=p072, ref='2.1.8') @@ -275,7 +275,7 @@ def develop_theory(self, t: pu.TheoryElaborationSequence) -> pu.TheoryElaboratio # 𝗣𝗿𝗼𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻: ((5 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟) ∧ (1 𝑖𝑠-𝑎 𝑛𝑎𝑡𝑢𝑟𝑎𝑙-𝑛𝑢𝑚𝑏𝑒𝑟)). p055 = t.i.conjunction_introduction.infer_statement(p044, p054) p056 = t.i.conjunction_introduction.infer_statement(p055, p048) - p057 = t.i.modus_ponens.infer_statement(p_implies_q=p053, p_hypothesis=p056) + p057 = t.i.modus_ponens.infer_statement(p_implies_q=p053, p=p056) t.open_section('Axiom 2.5: The principle of mathematical induction', section_parent=section_2_1, numbering=False)