Zulip Chat Archive

Stream: new members

Topic: redefining operators


pblpbl (Aug 09 2024 at 17:25):

Hello, is it possible to redefine existing operators? Currently I'm trying to make / always return a real number when called on Nat using
def div (a b : ℝ) : ℝ := a / b infix:70 "/" => div

but I'm getting ambiguous, possible interpretations when trying to use it.

Kyle Miller (Aug 09 2024 at 17:39):

You could override the interpretation of a pre-existing notation with a macro, like

macro_rules | `($a / $b) => `((HDiv.hDiv ($a : ) ($b : ) : ))

(untested)

Kyle Miller (Aug 09 2024 at 17:40):

This is better than using your div too since all theorems are in terms of HDiv.hDiv

Edward van de Meent (Aug 09 2024 at 17:41):

i think the preferable method would be to define a different notation, for example something like "/r"

Michal Wallace (tangentstorm) (Aug 10 2024 at 17:00):

÷?


Last updated: May 02 2025 at 03:31 UTC