80 lines
1.8 KiB
Text
80 lines
1.8 KiB
Text
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||
-- Author: Leonardo de Moura, Jeremy Avigad
|
||
|
||
-- general_notation
|
||
-- ================
|
||
|
||
-- General operations
|
||
-- ------------------
|
||
|
||
notation `assume` binders `,` r:(scoped f, f) := r
|
||
notation `take` binders `,` r:(scoped f, f) := r
|
||
|
||
|
||
-- Global declarations of right binding strength
|
||
-- ---------------------------------------------
|
||
|
||
-- If a module reassigns these, it will be incompatible with other modules that adhere to these
|
||
-- conventions.
|
||
|
||
-- ### Logical operations and relations
|
||
|
||
precedence `¬`:40
|
||
precedence `/\`:35 -- infixr
|
||
precedence `∧`:35 -- infixr
|
||
precedence `\/`:30 -- infixr
|
||
precedence `∨`:30 -- infixr
|
||
precedence `<->`:25
|
||
precedence `↔`:25
|
||
|
||
precedence `=`:50
|
||
precedence `≠`:50
|
||
|
||
precedence `≈`:50 -- used for path in hott
|
||
precedence `∼`:50
|
||
|
||
precedence `⁻¹`:100
|
||
precedence `⬝`:75 -- infixr
|
||
precedence `▸`:75 -- infixr
|
||
|
||
-- ### types and type constructors
|
||
|
||
precedence `ℕ`:max
|
||
precedence `ℤ`:max
|
||
|
||
precedence `⊎`:25 -- infixr
|
||
precedence `×`:30 -- infixr
|
||
|
||
-- ### arithmetic operations
|
||
|
||
precedence `+`:65 -- infixl
|
||
precedence `-`:65 -- infixl; for negation, follow by rbp 100
|
||
precedence `*`:70 -- infixl
|
||
precedence `div`:70 -- infixl
|
||
precedence `mod`:70 -- infixl
|
||
|
||
precedence `<=`:50
|
||
precedence `≤`:50
|
||
precedence `<`:50
|
||
precedence `>=`:50
|
||
precedence `≥`:50
|
||
precedence `>`:50
|
||
|
||
-- ### boolean operations
|
||
|
||
precedence `&&`:70 -- infixl
|
||
precedence `||`:65 -- infixl
|
||
|
||
-- ### set operations
|
||
|
||
precedence `∈`:50
|
||
precedence `∅`:max
|
||
precedence `∩`:70
|
||
precedence `∪`:65
|
||
|
||
-- ### other symbols
|
||
|
||
precedence `|`:55 -- used for absolute value, subtypes, divisibility
|
||
precedence `++`:65 -- list append
|
||
precedence `::`:65 -- list cons
|