Definitional equality of two propositions about propositional equalityIntro to Martin-Löf type...
If someone else uploads my GPL'd code to Github without my permission, is that a copyright violation?
What was the role of Commodore-West Germany?
Why does capacitance not depend on the material of the plates?
Getting an entry level IT position later in life
Does a humanoid possessed by a ghost register as undead to a paladin's Divine Sense?
Does the length of a password for Wi-Fi affect speed?
Launch capabilities of GSLV Mark III
Definitional equality of two propositions about propositional equality
Make a living as a math programming freelancer?
How to check a file was encrypted (really & correctly)
Does a 4 bladed prop have almost twice the thrust of a 2 bladed prop?
Write The Shortest Program To Check If A Binary Tree Is Balanced
Nested Unlocked Packages requires Installation of Base Packages?
Why private jets such as GulfStream ones fly higher than other civil jets?
Premier League simulation
London underground zone 1-2 train ticket
Can attackers change the public key of certificate during the SSL handshake
Can a Hogwarts student refuse the Sorting Hat's decision?
How and where to get you research work assessed for PhD?
What prevents ads from reading my password as I type it?
Can I enter a rental property without giving notice if I'm afraid a tenant may be hurt?
How do I get the =LEFT function in excel, to also take the number zero as the first number?
Purchased new computer from DELL with pre-installed Ubuntu. Won't boot. Should assume its an error from DELL?
Should I take out a personal loan to pay off credit card debt?
Definitional equality of two propositions about propositional equality
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 5 hours ago
Gilles♦
34.4k7 gold badges98 silver badges166 bronze badges
34.4k7 gold badges98 silver badges166 bronze badges
asked 9 hours ago
al palal pal
403 bronze badges
403 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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
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 2 hours ago
answered 5 hours ago
Gilles♦Gilles
34.4k7 gold badges98 silver badges166 bronze badges
34.4k7 gold badges98 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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
$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
2 hours ago
$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
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
$begingroup$
@alpal Yes, it's all a continuation of “If M and N are computationally equal” near the beginning.
$endgroup$
– Gilles♦
2 hours ago
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