Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black hole helper block needed #60

Open
mohrm opened this issue Oct 4, 2015 · 11 comments
Open

Black hole helper block needed #60

mohrm opened this issue Oct 4, 2015 · 11 comments

Comments

@mohrm
Copy link
Collaborator

mohrm commented Oct 4, 2015

I just wanted to export the rule "(P->False) -> (P->Q)". Here is the proof I came up with:
failed-export.pdf
There is one local hypothesis which is not used (in the outer proof by contradiction), unfortunately the export function considers this the input of the exported rule, whereas the real input (P->False) is not present.

Is this a bug or have I done something wrong?
I suppose I could live with it if the exported block had the unused local assumption as additional input but

@nomeata
Copy link
Owner

nomeata commented Oct 4, 2015

Side remark: First note that annotations blocks don’t work well with rule export: When you annotate something, everything (“P” etc.) is a constant, so the generated block will have these as constants (and not free variables).

@nomeata
Copy link
Owner

nomeata commented Oct 4, 2015

Could you also paste the generated rule?

Also, screenshots are nicer than PDFs, as these display inline on GitHub. Just run "import /tmp/foo.png" for the quickest way to get a screenshot :-)

@mohrm
Copy link
Collaborator Author

mohrm commented Oct 4, 2015

Sorry, here you are:
screenshot from 2015-10-04 12 05 38

@nomeata
Copy link
Owner

nomeata commented Oct 4, 2015

Isn’t that expected? All open ports are there, and correctly connected.

It seems to be rather a request for a “black hole block” with no output that consumes an input that you explicitly do not want to use. Unfortunately, I do not think you can build such a block already yourself, so it needs to go into the helper block section. And will look quite strange there... but I don’t see a better way.

@nomeata nomeata changed the title export magic does not detect input Black hole helper block needed Oct 4, 2015
@nomeata
Copy link
Owner

nomeata commented Oct 4, 2015

BTW, this block can be created more easily:
nicer-proof

@mohrm
Copy link
Collaborator Author

mohrm commented Oct 4, 2015

ah fuck!
Again, I did not get that local inputs can also be used globally :-)
I hope, this is generally gettable...

You're right, it is expected.

@mohrm mohrm closed this as completed Oct 4, 2015
@nomeata
Copy link
Owner

nomeata commented Oct 4, 2015

But there still is a need to be able to tell the system “when exporting a block, ignore this output”. E.g. when you want a “A∧B ==> A" block, isn’t there?

@nomeata nomeata reopened this Oct 4, 2015
@nomeata nomeata added enhancement and removed bug labels Oct 4, 2015
@nomeata
Copy link
Owner

nomeata commented Nov 6, 2016

Another instance where a black hole block might be useful:

screenshot_20161106_163314

@mohrm
Copy link
Collaborator Author

mohrm commented Nov 7, 2016

Ah okay, so you want to export this as custom block, but can't because the upper implication has an unused inner exit. Right?

@lohner
Copy link
Collaborator

lohner commented Nov 7, 2016

I've implemented a black hole block on the JS side a while back. Just uploaded it here: lohner/incredible@c471575 . Exporting a custom rule of the example above works on my machine. However I didn't analyse other implications of that for the logic/soundness etc.

black-hole

@nomeata
Copy link
Owner

nomeata commented Nov 7, 2016

I am still hoping that there is a less intrusive way of implementing that.

What if custom blocks would only include outputs that are connected? (Either to some other block that is not selected, or with a dangling connection) This would also allow to define custom blocks that use a certain output internally and also provide it as an output to the outside?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants