I couldn't get the right usage for the relation operator refl in Isabelle (2020)'s Main. I assume refl on a relation returns true if it's reflexive, same as the refl_on example above. But I am still learning these notations.
More specifically:
value "refl_on {True,False} {(True,True),(False,False)}"
gives True as expected. I thought the refl is the same, but the following:
value "refl {(True,True),(False,False)}"
gives an error:
exception Match raised (line 39 of "generated code")
Other operators such as sym seems to be fine:
value "sym {(True,True)}"
What is the correct way to use refl here?
-- Update --
There seems to be a similar error with total:
value "total {(True,True),(False,False)}"
, which gives:
exception Match raised (line 39 of "generated code")