Zulip Chat Archive
Stream: mathlib4
Topic: xor for Bool
Ruben Van de Velde (Nov 28 2022 at 16:21):
Is there actually an instance for xor on Bool in lean4?
Mario Carneiro (Nov 28 2022 at 16:23):
I don't think so (assuming you mean the ^^^ operator). You can use != though
Yury G. Kudryashov (Nov 28 2022 at 17:20):
But you don't have nice defeq for !=
Mario Carneiro (Nov 28 2022 at 17:44):
you should?
Mario Carneiro (Nov 28 2022 at 17:48):
-- it computes on literals
example : (true != true) = false := rfl
example : (true != false) = true := rfl
example : (false != true) = true := rfl
example : (false != false) = false := rfl
-- but there are no partial evaluation lucky defeqs
example : (true != a) = !a := rfl -- fail
example : (a != true) = !a := rfl -- fail
example : (a != false) = a := rfl -- fail
example : (false != a) = a := rfl -- fail
Kevin Buzzard (Nov 28 2022 at 21:01):
I ported xor -- it's in Mathlib.Init.Data.Bool.Basic.
Yury G. Kudryashov (Nov 29 2022 at 16:46):
Should we use != instead?
Yury G. Kudryashov (Nov 29 2022 at 16:47):
@Mario Carneiro Sorry, I didn't realize that you're talking about !=, not ≠.
Yury G. Kudryashov (Nov 29 2022 at 16:49):
Or define Xor instances for Bool and Prop?
Last updated: May 02 2025 at 03:31 UTC