lean2/library/general_notation.lean

83 lines
1.9 KiB
Text
Raw Normal View History

-- 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 `rfl`:max -- shorthand for reflexivity
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
precedence `!`:85 -- boolean negation, follow by rbp 100
-- ### 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