Pull all occurrences of the induction variable into the conclusion in Isabelle
I find the book "Isabelle/HOL: A Proof Assitant for Higher-Order logic" a very good reference to improve the apply-style coding in Isabelle. In several parts of the books (for instance section 9.2) the authors state that a good heuristic for induction is to:
pull all occurrence of the induction variable into the conclusion
using ⟶
but the way they do this is by restating the goal as a lemma with the ⟶ instead of ⟹. I want to do this automatically in apply-style. My current goal is of the form:
⋀ param. A ⟹ B
How would you pull A into the conclusions using apply-style?
isabelle
add a comment |
I find the book "Isabelle/HOL: A Proof Assitant for Higher-Order logic" a very good reference to improve the apply-style coding in Isabelle. In several parts of the books (for instance section 9.2) the authors state that a good heuristic for induction is to:
pull all occurrence of the induction variable into the conclusion
using ⟶
but the way they do this is by restating the goal as a lemma with the ⟶ instead of ⟹. I want to do this automatically in apply-style. My current goal is of the form:
⋀ param. A ⟹ B
How would you pull A into the conclusions using apply-style?
isabelle
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56
add a comment |
I find the book "Isabelle/HOL: A Proof Assitant for Higher-Order logic" a very good reference to improve the apply-style coding in Isabelle. In several parts of the books (for instance section 9.2) the authors state that a good heuristic for induction is to:
pull all occurrence of the induction variable into the conclusion
using ⟶
but the way they do this is by restating the goal as a lemma with the ⟶ instead of ⟹. I want to do this automatically in apply-style. My current goal is of the form:
⋀ param. A ⟹ B
How would you pull A into the conclusions using apply-style?
isabelle
I find the book "Isabelle/HOL: A Proof Assitant for Higher-Order logic" a very good reference to improve the apply-style coding in Isabelle. In several parts of the books (for instance section 9.2) the authors state that a good heuristic for induction is to:
pull all occurrence of the induction variable into the conclusion
using ⟶
but the way they do this is by restating the goal as a lemma with the ⟶ instead of ⟹. I want to do this automatically in apply-style. My current goal is of the form:
⋀ param. A ⟹ B
How would you pull A into the conclusions using apply-style?
isabelle
isabelle
asked Nov 26 '18 at 18:30
JavierJavier
653723
653723
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56
add a comment |
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56
add a comment |
1 Answer
1
active
oldest
votes
You can use apply(erule rev_mp)
to restate the goal using ⟶
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f53487024%2fpull-all-occurrences-of-the-induction-variable-into-the-conclusion-in-isabelle%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
You can use apply(erule rev_mp)
to restate the goal using ⟶
.
add a comment |
You can use apply(erule rev_mp)
to restate the goal using ⟶
.
add a comment |
You can use apply(erule rev_mp)
to restate the goal using ⟶
.
You can use apply(erule rev_mp)
to restate the goal using ⟶
.
answered Nov 26 '18 at 23:23
xanonecxanonec
537113
537113
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- 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.
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%2fstackoverflow.com%2fquestions%2f53487024%2fpull-all-occurrences-of-the-induction-variable-into-the-conclusion-in-isabelle%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
@xanonec, i mixed question that comment was intended for stackoverflow.com/questions/53486780/…
– Javier
Nov 26 '18 at 22:55
@xanonec the command you indicated works perfect for me, feel free to add it as an answer
– Javier
Nov 26 '18 at 22:56