Zulip Chat Archive
Stream: general
Topic: io
Reid Barton (Sep 15 2018 at 13:54):
Is it intentional that the whole io
interface (notably including various constants like monad_io_terminal
) is not meta
?
Reid Barton (Sep 15 2018 at 13:56):
I just wonder because for soundness, one ought to check that all these constants can be implemented (e.g., by io_core = lam x y, unit
) in Lean
Johannes Hölzl (Sep 15 2018 at 14:05):
Yes, to ensure soundness we would need to show that it fulfills all constraints. But then all these classes are just lists of operations which do not contain any proposition. Showing that they are inhabited is trivial.
Johannes Hölzl (Sep 15 2018 at 14:07):
But a nice model would be cool, i.e. where io_core
encapsulates a state with files, processes etc.
Reid Barton (Sep 15 2018 at 14:12):
I just wonder whether there's a reason that it is handled differently from tactic
, where as far as I can tell all the constants are marked meta
. Maybe it's just that tactic
has quite a lot more constants, and also the definition of the tactic
monad is partially exposed (as state
something).
Reid Barton (Sep 15 2018 at 14:13):
The most interesting thing with io
I found is that monad_io_terminal.cmdline_args io_core
is a list string
which is not meta, so I could do things like make a mathematical definition which depends on the length of this list
Reid Barton (Sep 15 2018 at 14:16):
Although #print axioms
would reveal what I had done
Last updated: Dec 20 2023 at 11:08 UTC