Definitional equality of two propositions about propositional equalityWhy values can not be replaced with their extensionally equal values in an intensional system?Intro to Martin-Löf type theoryNon-termination of types in Martin-Löf's Type:Type?Why is `map insertionsort` not to equal to`map mergesort`?Indexing a dependent type on a value?How Types avoids Russel's Paradox?What fragment of Martin-Löf dependent type theory can be expressed using generic types in Java?Extensional constructs in minimal extensional type theory without eta equalityMeaning of the notation Typ := TVar | (Typ → Typ)Dependent Type Theory Implementation of a GraphPropositional extentionality in the lean theorem prover?
What allows us to use imaginary numbers?
Why is the name Bergson pronounced like Berksonne?
Have made several mistakes during the course of my PhD. Can't help but feel resentment. Can I get some advice about how to move forward?
Are there categories whose internal hom is somewhat 'exotic'?
Adding things to bunches of things vs multiplication
Designing a prison for a telekinetic race
Why do balloons get cold when they deflate?
Is recepted a word?
Tabularx with hline and overrightarrow vertical spacing
Is there a way to make the "o" keypress of other-window <C-x><C-o> repeatable?
Do living authors still get paid royalties for their old work?
Gofer work in exchange for Letter of Recommendation
What is the evidence on the danger of feeding whole blueberries and grapes to infants and toddlers?
Why doesn't mathematics collapse down, even though humans quite often make mistakes in their proofs?
The Lucky House
Just one file echoed from an array of files
Why did St. Jerome use "virago" in Gen. 2:23?
Angles between vectors of center of two incircles
To plot branch cut of logarithm
Why is su world executable?
Starships without computers?
Would getting a natural 20 with a penalty still count as a critical hit?
Do predators tend to have vertical slit pupils versus horizontal for prey animals?
Playing a fast but quiet Alberti bass
Definitional equality of two propositions about propositional equality
Why values can not be replaced with their extensionally equal values in an intensional system?Intro to Martin-Löf type theoryNon-termination of types in Martin-Löf's Type:Type?Why is `map insertionsort` not to equal to`map mergesort`?Indexing a dependent type on a value?How Types avoids Russel's Paradox?What fragment of Martin-Löf dependent type theory can be expressed using generic types in Java?Extensional constructs in minimal extensional type theory without eta equalityMeaning of the notation Typ := TVar | (Typ → Typ)Dependent Type Theory Implementation of a GraphPropositional extentionality in the lean theorem prover?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
Martin Hofmann states in Extensional Concepts in Intensional Type Theory (§1.1 p.3) that:
It is important that definition equality is pervasive so if M and N are definitionally equal then P(M) is definitionally equal to P(N) whatever P is. In particular the proposition stating that M is propositionally equal to N is definitionally equal to the proposition that M is propositionally equal to itself.
What I don't get is how a proposition about equality of M and N propositionally can be definitionally equal to the proposition about propositional equality of M and M ?
type-theory dependent-types equality
$endgroup$
add a comment |
$begingroup$
Martin Hofmann states in Extensional Concepts in Intensional Type Theory (§1.1 p.3) that:
It is important that definition equality is pervasive so if M and N are definitionally equal then P(M) is definitionally equal to P(N) whatever P is. In particular the proposition stating that M is propositionally equal to N is definitionally equal to the proposition that M is propositionally equal to itself.
What I don't get is how a proposition about equality of M and N propositionally can be definitionally equal to the proposition about propositional equality of M and M ?
type-theory dependent-types equality
$endgroup$
add a comment |
$begingroup$
Martin Hofmann states in Extensional Concepts in Intensional Type Theory (§1.1 p.3) that:
It is important that definition equality is pervasive so if M and N are definitionally equal then P(M) is definitionally equal to P(N) whatever P is. In particular the proposition stating that M is propositionally equal to N is definitionally equal to the proposition that M is propositionally equal to itself.
What I don't get is how a proposition about equality of M and N propositionally can be definitionally equal to the proposition about propositional equality of M and M ?
type-theory dependent-types equality
$endgroup$
Martin Hofmann states in Extensional Concepts in Intensional Type Theory (§1.1 p.3) that:
It is important that definition equality is pervasive so if M and N are definitionally equal then P(M) is definitionally equal to P(N) whatever P is. In particular the proposition stating that M is propositionally equal to N is definitionally equal to the proposition that M is propositionally equal to itself.
What I don't get is how a proposition about equality of M and N propositionally can be definitionally equal to the proposition about propositional equality of M and M ?
type-theory dependent-types equality
type-theory dependent-types equality
edited Aug 6 at 19:03
Gilles♦
34.6k7 gold badges99 silver badges166 bronze badges
34.6k7 gold badges99 silver badges166 bronze badges
asked Aug 6 at 15:26
al palal pal
925 bronze badges
925 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Recall that (a few paragraphs above)
two objects are definitionally equal if after certain computation steps they evaluate
to identical results.
Assume throughout this post that $M$ and $N$ are definitionally equal. This means that there is a series of computation steps $M_0 leftrightarrow M_1 leftrightarrow ldots leftrightarrow M_n$ where I use $leftrightarrow$ do denote a computation step, and $M_0$ is the term $M$ and $M_n$ is the term $N$.
Any computation step can be applied in any context. This is part of the definition of computation rules for calculi used in logic (as opposed to calculi used to model programming languages with side effects). So if you stick $M_0$ in some context $P$, there is a series of computation steps $P(M_0) leftrightarrow P(M_1) leftrightarrow ldots leftrightarrow P(M_n)$. This means that $P(M_0)$ and $P(M_n)$ are definitionally equal, i.e. $P(M)$ and $P(N)$ are definitionally equal.
Apply this to a property $P(X)$ that expresses “$M$ is propositionally equal to $X$”, no matter how this is expressed in a particular calculus. $P(M)$ is definitionally equal to $P(N)$, i.e. a property that expresses “$M$ is propositionally equal to $M$” is definitionally equal to “$M$ is propositionally equal to $N$”.
Strictly speaking, there isn't necessarily a single proposition stating that $M$ is propositionally equal to $N$ — there may be ways to state this that are not definitionally equal (it depends on the exact calculus. If a calculus has multiple ways to express this, there can be two (or more) non-definitionally-equal propositions stating that $M$ is equal to itself, and then there are also multiple non-definitionally-equal propositions stating that $M$ is equal to $N$. But for each proposition stating that $M$ is equal to itself, that proposition is definitionally equal to a proposition stating that $M$ is equal to $N$, by applying the computation steps that rewrite $M$ to $N$.
Reasoning about equality can be difficult to follow. We tend to have an intuition that equality is just equality, dammit. It's a bit difficult to internalize that there are different concepts of equality, and worse, they coexist in the same theory. I think it helps if you use words other than “equality”. If two terms are written exactly in the same way (as strings or at least as abstract syntax trees), they're identical. As long as you're not reasoning about variable binding, you can extend that to terms that are identical except for variable names, i.e. terms that are alpha-equivalent. Beyond that, don't use the word “equal”. If there's a series of computation steps that leads from $M$ to $N$, say that $M$ and $N$ are computationally equivalent or rewritable to each other. They're not necessarily “equal”, but they're equivalent for a certain equivalence relation. Then it's obvious and not particularly confusing that there can be coarser equivalences between terms. For example, there's an equivalence relation between terms defined by “if you replace $M$ by $N$ in a true proposition, you get a proposition that's still true”. This is a form of observational or extensional equivalence of propositions. It can be called “observational equality” or “propositional equality”, but to form an intuition, don't call it that. And then it's not so shocking that if $N$ can be rewritten to $M$, then any proposition stating that $M$ is whatever-equivalent to $N$ can be rewritten to a proposition that states that $M$ is equivalent to itself.
$endgroup$
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "419"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f112501%2fdefinitional-equality-of-two-propositions-about-propositional-equality%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Recall that (a few paragraphs above)
two objects are definitionally equal if after certain computation steps they evaluate
to identical results.
Assume throughout this post that $M$ and $N$ are definitionally equal. This means that there is a series of computation steps $M_0 leftrightarrow M_1 leftrightarrow ldots leftrightarrow M_n$ where I use $leftrightarrow$ do denote a computation step, and $M_0$ is the term $M$ and $M_n$ is the term $N$.
Any computation step can be applied in any context. This is part of the definition of computation rules for calculi used in logic (as opposed to calculi used to model programming languages with side effects). So if you stick $M_0$ in some context $P$, there is a series of computation steps $P(M_0) leftrightarrow P(M_1) leftrightarrow ldots leftrightarrow P(M_n)$. This means that $P(M_0)$ and $P(M_n)$ are definitionally equal, i.e. $P(M)$ and $P(N)$ are definitionally equal.
Apply this to a property $P(X)$ that expresses “$M$ is propositionally equal to $X$”, no matter how this is expressed in a particular calculus. $P(M)$ is definitionally equal to $P(N)$, i.e. a property that expresses “$M$ is propositionally equal to $M$” is definitionally equal to “$M$ is propositionally equal to $N$”.
Strictly speaking, there isn't necessarily a single proposition stating that $M$ is propositionally equal to $N$ — there may be ways to state this that are not definitionally equal (it depends on the exact calculus. If a calculus has multiple ways to express this, there can be two (or more) non-definitionally-equal propositions stating that $M$ is equal to itself, and then there are also multiple non-definitionally-equal propositions stating that $M$ is equal to $N$. But for each proposition stating that $M$ is equal to itself, that proposition is definitionally equal to a proposition stating that $M$ is equal to $N$, by applying the computation steps that rewrite $M$ to $N$.
Reasoning about equality can be difficult to follow. We tend to have an intuition that equality is just equality, dammit. It's a bit difficult to internalize that there are different concepts of equality, and worse, they coexist in the same theory. I think it helps if you use words other than “equality”. If two terms are written exactly in the same way (as strings or at least as abstract syntax trees), they're identical. As long as you're not reasoning about variable binding, you can extend that to terms that are identical except for variable names, i.e. terms that are alpha-equivalent. Beyond that, don't use the word “equal”. If there's a series of computation steps that leads from $M$ to $N$, say that $M$ and $N$ are computationally equivalent or rewritable to each other. They're not necessarily “equal”, but they're equivalent for a certain equivalence relation. Then it's obvious and not particularly confusing that there can be coarser equivalences between terms. For example, there's an equivalence relation between terms defined by “if you replace $M$ by $N$ in a true proposition, you get a proposition that's still true”. This is a form of observational or extensional equivalence of propositions. It can be called “observational equality” or “propositional equality”, but to form an intuition, don't call it that. And then it's not so shocking that if $N$ can be rewritten to $M$, then any proposition stating that $M$ is whatever-equivalent to $N$ can be rewritten to a proposition that states that $M$ is equivalent to itself.
$endgroup$
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
add a comment |
$begingroup$
Recall that (a few paragraphs above)
two objects are definitionally equal if after certain computation steps they evaluate
to identical results.
Assume throughout this post that $M$ and $N$ are definitionally equal. This means that there is a series of computation steps $M_0 leftrightarrow M_1 leftrightarrow ldots leftrightarrow M_n$ where I use $leftrightarrow$ do denote a computation step, and $M_0$ is the term $M$ and $M_n$ is the term $N$.
Any computation step can be applied in any context. This is part of the definition of computation rules for calculi used in logic (as opposed to calculi used to model programming languages with side effects). So if you stick $M_0$ in some context $P$, there is a series of computation steps $P(M_0) leftrightarrow P(M_1) leftrightarrow ldots leftrightarrow P(M_n)$. This means that $P(M_0)$ and $P(M_n)$ are definitionally equal, i.e. $P(M)$ and $P(N)$ are definitionally equal.
Apply this to a property $P(X)$ that expresses “$M$ is propositionally equal to $X$”, no matter how this is expressed in a particular calculus. $P(M)$ is definitionally equal to $P(N)$, i.e. a property that expresses “$M$ is propositionally equal to $M$” is definitionally equal to “$M$ is propositionally equal to $N$”.
Strictly speaking, there isn't necessarily a single proposition stating that $M$ is propositionally equal to $N$ — there may be ways to state this that are not definitionally equal (it depends on the exact calculus. If a calculus has multiple ways to express this, there can be two (or more) non-definitionally-equal propositions stating that $M$ is equal to itself, and then there are also multiple non-definitionally-equal propositions stating that $M$ is equal to $N$. But for each proposition stating that $M$ is equal to itself, that proposition is definitionally equal to a proposition stating that $M$ is equal to $N$, by applying the computation steps that rewrite $M$ to $N$.
Reasoning about equality can be difficult to follow. We tend to have an intuition that equality is just equality, dammit. It's a bit difficult to internalize that there are different concepts of equality, and worse, they coexist in the same theory. I think it helps if you use words other than “equality”. If two terms are written exactly in the same way (as strings or at least as abstract syntax trees), they're identical. As long as you're not reasoning about variable binding, you can extend that to terms that are identical except for variable names, i.e. terms that are alpha-equivalent. Beyond that, don't use the word “equal”. If there's a series of computation steps that leads from $M$ to $N$, say that $M$ and $N$ are computationally equivalent or rewritable to each other. They're not necessarily “equal”, but they're equivalent for a certain equivalence relation. Then it's obvious and not particularly confusing that there can be coarser equivalences between terms. For example, there's an equivalence relation between terms defined by “if you replace $M$ by $N$ in a true proposition, you get a proposition that's still true”. This is a form of observational or extensional equivalence of propositions. It can be called “observational equality” or “propositional equality”, but to form an intuition, don't call it that. And then it's not so shocking that if $N$ can be rewritten to $M$, then any proposition stating that $M$ is whatever-equivalent to $N$ can be rewritten to a proposition that states that $M$ is equivalent to itself.
$endgroup$
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
add a comment |
$begingroup$
Recall that (a few paragraphs above)
two objects are definitionally equal if after certain computation steps they evaluate
to identical results.
Assume throughout this post that $M$ and $N$ are definitionally equal. This means that there is a series of computation steps $M_0 leftrightarrow M_1 leftrightarrow ldots leftrightarrow M_n$ where I use $leftrightarrow$ do denote a computation step, and $M_0$ is the term $M$ and $M_n$ is the term $N$.
Any computation step can be applied in any context. This is part of the definition of computation rules for calculi used in logic (as opposed to calculi used to model programming languages with side effects). So if you stick $M_0$ in some context $P$, there is a series of computation steps $P(M_0) leftrightarrow P(M_1) leftrightarrow ldots leftrightarrow P(M_n)$. This means that $P(M_0)$ and $P(M_n)$ are definitionally equal, i.e. $P(M)$ and $P(N)$ are definitionally equal.
Apply this to a property $P(X)$ that expresses “$M$ is propositionally equal to $X$”, no matter how this is expressed in a particular calculus. $P(M)$ is definitionally equal to $P(N)$, i.e. a property that expresses “$M$ is propositionally equal to $M$” is definitionally equal to “$M$ is propositionally equal to $N$”.
Strictly speaking, there isn't necessarily a single proposition stating that $M$ is propositionally equal to $N$ — there may be ways to state this that are not definitionally equal (it depends on the exact calculus. If a calculus has multiple ways to express this, there can be two (or more) non-definitionally-equal propositions stating that $M$ is equal to itself, and then there are also multiple non-definitionally-equal propositions stating that $M$ is equal to $N$. But for each proposition stating that $M$ is equal to itself, that proposition is definitionally equal to a proposition stating that $M$ is equal to $N$, by applying the computation steps that rewrite $M$ to $N$.
Reasoning about equality can be difficult to follow. We tend to have an intuition that equality is just equality, dammit. It's a bit difficult to internalize that there are different concepts of equality, and worse, they coexist in the same theory. I think it helps if you use words other than “equality”. If two terms are written exactly in the same way (as strings or at least as abstract syntax trees), they're identical. As long as you're not reasoning about variable binding, you can extend that to terms that are identical except for variable names, i.e. terms that are alpha-equivalent. Beyond that, don't use the word “equal”. If there's a series of computation steps that leads from $M$ to $N$, say that $M$ and $N$ are computationally equivalent or rewritable to each other. They're not necessarily “equal”, but they're equivalent for a certain equivalence relation. Then it's obvious and not particularly confusing that there can be coarser equivalences between terms. For example, there's an equivalence relation between terms defined by “if you replace $M$ by $N$ in a true proposition, you get a proposition that's still true”. This is a form of observational or extensional equivalence of propositions. It can be called “observational equality” or “propositional equality”, but to form an intuition, don't call it that. And then it's not so shocking that if $N$ can be rewritten to $M$, then any proposition stating that $M$ is whatever-equivalent to $N$ can be rewritten to a proposition that states that $M$ is equivalent to itself.
$endgroup$
Recall that (a few paragraphs above)
two objects are definitionally equal if after certain computation steps they evaluate
to identical results.
Assume throughout this post that $M$ and $N$ are definitionally equal. This means that there is a series of computation steps $M_0 leftrightarrow M_1 leftrightarrow ldots leftrightarrow M_n$ where I use $leftrightarrow$ do denote a computation step, and $M_0$ is the term $M$ and $M_n$ is the term $N$.
Any computation step can be applied in any context. This is part of the definition of computation rules for calculi used in logic (as opposed to calculi used to model programming languages with side effects). So if you stick $M_0$ in some context $P$, there is a series of computation steps $P(M_0) leftrightarrow P(M_1) leftrightarrow ldots leftrightarrow P(M_n)$. This means that $P(M_0)$ and $P(M_n)$ are definitionally equal, i.e. $P(M)$ and $P(N)$ are definitionally equal.
Apply this to a property $P(X)$ that expresses “$M$ is propositionally equal to $X$”, no matter how this is expressed in a particular calculus. $P(M)$ is definitionally equal to $P(N)$, i.e. a property that expresses “$M$ is propositionally equal to $M$” is definitionally equal to “$M$ is propositionally equal to $N$”.
Strictly speaking, there isn't necessarily a single proposition stating that $M$ is propositionally equal to $N$ — there may be ways to state this that are not definitionally equal (it depends on the exact calculus. If a calculus has multiple ways to express this, there can be two (or more) non-definitionally-equal propositions stating that $M$ is equal to itself, and then there are also multiple non-definitionally-equal propositions stating that $M$ is equal to $N$. But for each proposition stating that $M$ is equal to itself, that proposition is definitionally equal to a proposition stating that $M$ is equal to $N$, by applying the computation steps that rewrite $M$ to $N$.
Reasoning about equality can be difficult to follow. We tend to have an intuition that equality is just equality, dammit. It's a bit difficult to internalize that there are different concepts of equality, and worse, they coexist in the same theory. I think it helps if you use words other than “equality”. If two terms are written exactly in the same way (as strings or at least as abstract syntax trees), they're identical. As long as you're not reasoning about variable binding, you can extend that to terms that are identical except for variable names, i.e. terms that are alpha-equivalent. Beyond that, don't use the word “equal”. If there's a series of computation steps that leads from $M$ to $N$, say that $M$ and $N$ are computationally equivalent or rewritable to each other. They're not necessarily “equal”, but they're equivalent for a certain equivalence relation. Then it's obvious and not particularly confusing that there can be coarser equivalences between terms. For example, there's an equivalence relation between terms defined by “if you replace $M$ by $N$ in a true proposition, you get a proposition that's still true”. This is a form of observational or extensional equivalence of propositions. It can be called “observational equality” or “propositional equality”, but to form an intuition, don't call it that. And then it's not so shocking that if $N$ can be rewritten to $M$, then any proposition stating that $M$ is whatever-equivalent to $N$ can be rewritten to a proposition that states that $M$ is equivalent to itself.
edited Aug 6 at 22:07
answered Aug 6 at 19:02
Gilles♦Gilles
34.6k7 gold badges99 silver badges166 bronze badges
34.6k7 gold badges99 silver badges166 bronze badges
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
add a comment |
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
Thanks for the answer. So in your third paragraph when you talk about P(X), P(M) and P(N), the presumption is that M and N are already definitionally equal, did I get it right?
$endgroup$
– al pal
Aug 6 at 22:04
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
Aug 6 at 22:07
add a comment |
Thanks for contributing an answer to Computer Science Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f112501%2fdefinitional-equality-of-two-propositions-about-propositional-equality%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown