control.uliftMathlib.Control.ULift

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -2,13 +2,10 @@
 Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Jannis Limperg
-
-! This file was ported from Lean 3 source module control.ulift
-! leanprover-community/mathlib commit 448144f7ae193a8990cb7473c9e9a01990f64ac7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 
+#align_import control.ulift from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
+
 /-!
 # Monadic instances for `ulift` and `plift`
 
Diff
@@ -93,8 +93,8 @@ instance : LawfulApplicative PLift
 
 instance : LawfulMonad PLift
     where
-  bind_pure_comp_eq_map := fun α β f ⟨x⟩ => rfl
-  bind_map_eq_seq := fun α β ⟨a⟩ ⟨b⟩ => rfl
+  bind_pure_comp := fun α β f ⟨x⟩ => rfl
+  bind_map := fun α β ⟨a⟩ ⟨b⟩ => rfl
   pure_bind α β x f := rfl
   bind_assoc := fun α β γ ⟨x⟩ f g => rfl
 
@@ -182,8 +182,8 @@ instance : LawfulApplicative ULift
 
 instance : LawfulMonad ULift
     where
-  bind_pure_comp_eq_map := fun α β f ⟨x⟩ => rfl
-  bind_map_eq_seq := fun α β ⟨a⟩ ⟨b⟩ => rfl
+  bind_pure_comp := fun α β f ⟨x⟩ => rfl
+  bind_map := fun α β ⟨a⟩ ⟨b⟩ => rfl
   pure_bind α β x f := by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x; rfl
   bind_assoc := fun α β γ ⟨x⟩ f g => by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x;
     rfl
Diff
@@ -46,10 +46,12 @@ protected def pure : α → PLift α :=
 #align plift.pure PLift.pure
 -/
 
+#print PLift.seq /-
 /-- Applicative sequencing. -/
 protected def seq (f : PLift (α → β)) (x : PLift α) : PLift β :=
   PLift.up (f.down x.down)
 #align plift.seq PLift.seq
+-/
 
 #print PLift.seq_up /-
 @[simp]
@@ -110,15 +112,19 @@ namespace ULift
 
 variable {α : Type u} {β : Type v}
 
+#print ULift.map /-
 /-- Functorial action. -/
 protected def map (f : α → β) (a : ULift α) : ULift β :=
   ULift.up (f a.down)
 #align ulift.map ULift.map
+-/
 
+#print ULift.map_up /-
 @[simp]
 theorem map_up (f : α → β) (a : α) : (ULift.up a).map f = ULift.up (f a) :=
   rfl
 #align ulift.map_up ULift.map_up
+-/
 
 #print ULift.pure /-
 /-- Embedding of pure values. -/
@@ -128,15 +134,19 @@ protected def pure : α → ULift α :=
 #align ulift.pure ULift.pure
 -/
 
+#print ULift.seq /-
 /-- Applicative sequencing. -/
 protected def seq (f : ULift (α → β)) (x : ULift α) : ULift β :=
   ULift.up (f.down x.down)
 #align ulift.seq ULift.seq
+-/
 
+#print ULift.seq_up /-
 @[simp]
 theorem seq_up (f : α → β) (x : α) : (ULift.up f).seq (ULift.up x) = ULift.up (f x) :=
   rfl
 #align ulift.seq_up ULift.seq_up
+-/
 
 #print ULift.bind /-
 /-- Monadic bind. -/
@@ -145,10 +155,12 @@ protected def bind (a : ULift α) (f : α → ULift β) : ULift β :=
 #align ulift.bind ULift.bind
 -/
 
+#print ULift.bind_up /-
 @[simp]
 theorem bind_up (a : α) (f : α → ULift β) : (ULift.up a).bind f = f a :=
   rfl
 #align ulift.bind_up ULift.bind_up
+-/
 
 instance : Monad ULift where
   map := @ULift.map
@@ -176,11 +188,13 @@ instance : LawfulMonad ULift
   bind_assoc := fun α β γ ⟨x⟩ f g => by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x;
     rfl
 
+#print ULift.rec.constant /-
 @[simp]
 theorem rec.constant {α : Type u} {β : Sort v} (b : β) :
     (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b :=
   funext fun x => ULift.casesOn x fun a => Eq.refl (ULift.rec (fun a' => b) { down := a })
 #align ulift.rec.constant ULift.rec.constant
+-/
 
 end ULift
 
Diff
@@ -46,12 +46,6 @@ protected def pure : α → PLift α :=
 #align plift.pure PLift.pure
 -/
 
-/- warning: plift.seq -> PLift.seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Sort.{u1}} {β : Sort.{u2}}, (PLift.{imax u1 u2} (α -> β)) -> (PLift.{u1} α) -> (PLift.{u2} β)
-but is expected to have type
-  forall {α : Sort.{u1}} {β : Sort.{u2}}, (PLift.{imax u1 u2} (α -> β)) -> (Unit -> (PLift.{u1} α)) -> (PLift.{u2} β)
-Case conversion may be inaccurate. Consider using '#align plift.seq PLift.seqₓ'. -/
 /-- Applicative sequencing. -/
 protected def seq (f : PLift (α → β)) (x : PLift α) : PLift β :=
   PLift.up (f.down x.down)
@@ -116,23 +110,11 @@ namespace ULift
 
 variable {α : Type u} {β : Type v}
 
-/- warning: ulift.map -> ULift.map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u}} {β : Type.{v}}, (α -> β) -> (ULift.{u_1, u} α) -> (ULift.{u_2, v} β)
-but is expected to have type
-  forall {α : Type.{u}} {β : Type.{v}}, (α -> β) -> (ULift.{u_1, u} α) -> (ULift.{u, v} β)
-Case conversion may be inaccurate. Consider using '#align ulift.map ULift.mapₓ'. -/
 /-- Functorial action. -/
 protected def map (f : α → β) (a : ULift α) : ULift β :=
   ULift.up (f a.down)
 #align ulift.map ULift.map
 
-/- warning: ulift.map_up -> ULift.map_up is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u}} {β : Type.{v}} (f : α -> β) (a : α), Eq.{succ (max v u_1)} (ULift.{u_1, v} β) (ULift.map.{u, v, u_2, u_1} α β f (ULift.up.{u_2, u} α a)) (ULift.up.{u_1, v} β (f a))
-but is expected to have type
-  forall {α : Type.{u}} {β : Type.{v}} (f : α -> β) (a : α), Eq.{max (succ u) (succ v)} (ULift.{u, v} β) (ULift.map.{u, v, u} α β f (ULift.up.{u, u} α a)) (ULift.up.{u, v} β (f a))
-Case conversion may be inaccurate. Consider using '#align ulift.map_up ULift.map_upₓ'. -/
 @[simp]
 theorem map_up (f : α → β) (a : α) : (ULift.up a).map f = ULift.up (f a) :=
   rfl
@@ -146,23 +128,11 @@ protected def pure : α → ULift α :=
 #align ulift.pure ULift.pure
 -/
 
-/- warning: ulift.seq -> ULift.seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}}, (ULift.{u3, max u1 u2} (α -> β)) -> (ULift.{u4, u1} α) -> (ULift.{u5, u2} β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}}, (ULift.{u4, max u2 u3} (α -> β)) -> (Unit -> (ULift.{u5, u2} α)) -> (ULift.{u1, u3} β)
-Case conversion may be inaccurate. Consider using '#align ulift.seq ULift.seqₓ'. -/
 /-- Applicative sequencing. -/
 protected def seq (f : ULift (α → β)) (x : ULift α) : ULift β :=
   ULift.up (f.down x.down)
 #align ulift.seq ULift.seq
 
-/- warning: ulift.seq_up -> ULift.seq_up is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} (f : α -> β) (x : α), Eq.{succ (max u2 u3)} (ULift.{u3, u2} β) (ULift.seq.{u1, u2, u4, u5, u3} α β (ULift.up.{u4, max u1 u2} (α -> β) f) (ULift.up.{u5, u1} α x)) (ULift.up.{u3, u2} β (f x))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u5}} (f : α -> β) (x : α), Eq.{max (succ u5) (succ u3)} (ULift.{u3, u5} β) (ULift.seq.{u3, u4, u5, u2, u1} α β (ULift.up.{u2, max u4 u5} (α -> β) f) (fun (x._@.Mathlib.Control.ULift._hyg.808 : Unit) => ULift.up.{u1, u4} α x)) (ULift.up.{u3, u5} β (f x))
-Case conversion may be inaccurate. Consider using '#align ulift.seq_up ULift.seq_upₓ'. -/
 @[simp]
 theorem seq_up (f : α → β) (x : α) : (ULift.up f).seq (ULift.up x) = ULift.up (f x) :=
   rfl
@@ -175,12 +145,6 @@ protected def bind (a : ULift α) (f : α → ULift β) : ULift β :=
 #align ulift.bind ULift.bind
 -/
 
-/- warning: ulift.bind_up -> ULift.bind_up is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} (a : α) (f : α -> (ULift.{u3, u2} β)), Eq.{succ (max u2 u3)} (ULift.{u3, u2} β) (ULift.bind.{u1, u2, u4, u3} α β (ULift.up.{u4, u1} α a) f) (f a)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} (a : α) (f : α -> (ULift.{u2, u4} β)), Eq.{max (succ u4) (succ u2)} (ULift.{u2, u4} β) (ULift.bind.{u3, u4, u1, u2} α β (ULift.up.{u1, u3} α a) f) (f a)
-Case conversion may be inaccurate. Consider using '#align ulift.bind_up ULift.bind_upₓ'. -/
 @[simp]
 theorem bind_up (a : α) (f : α → ULift β) : (ULift.up a).bind f = f a :=
   rfl
@@ -212,12 +176,6 @@ instance : LawfulMonad ULift
   bind_assoc := fun α β γ ⟨x⟩ f g => by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x;
     rfl
 
-/- warning: ulift.rec.constant -> ULift.rec.constant is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Sort.{u2}} (b : β), Eq.{imax (succ (max u1 u3)) u2} (forall (n : ULift.{u3, u1} α), (fun (_x : ULift.{u3, u1} α) => β) n) (ULift.rec.{u2, u3, u1} α (fun (_x : ULift.{u3, u1} α) => β) (fun (_x : α) => b)) (fun (_x : ULift.{u3, u1} α) => b)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Sort.{u3}} (b : β), Eq.{imax (max (succ u2) (succ u1)) u3} ((ULift.{u1, u2} α) -> β) (ULift.rec.{u3, u1, u2} α (fun (_x : ULift.{u1, u2} α) => β) (fun (_x : α) => b)) (fun (_x : ULift.{u1, u2} α) => b)
-Case conversion may be inaccurate. Consider using '#align ulift.rec.constant ULift.rec.constantₓ'. -/
 @[simp]
 theorem rec.constant {α : Type u} {β : Sort v} (b : β) :
     (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b :=
Diff
@@ -208,14 +208,8 @@ instance : LawfulMonad ULift
     where
   bind_pure_comp_eq_map := fun α β f ⟨x⟩ => rfl
   bind_map_eq_seq := fun α β ⟨a⟩ ⟨b⟩ => rfl
-  pure_bind α β x f := by
-    dsimp only [bind, pure, ULift.pure, ULift.bind]
-    cases f x
-    rfl
-  bind_assoc := fun α β γ ⟨x⟩ f g =>
-    by
-    dsimp only [bind, pure, ULift.pure, ULift.bind]
-    cases f x
+  pure_bind α β x f := by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x; rfl
+  bind_assoc := fun α β γ ⟨x⟩ f g => by dsimp only [bind, pure, ULift.pure, ULift.bind]; cases f x;
     rfl
 
 /- warning: ulift.rec.constant -> ULift.rec.constant is a dubious translation:

Changes in mathlib4

mathlib3
mathlib4
feat: When Nat.card is zero (#8202)

and lemmas about injectivity/surjectivity of PLift.map/ULift.map.

Diff
@@ -3,7 +3,6 @@ Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Jannis Limperg
 -/
-
 import Mathlib.Mathport.Rename
 
 #align_import control.ulift from "leanprover-community/mathlib"@"99e8971dc62f1f7ecf693d75e75fbbabd55849de"
@@ -13,8 +12,7 @@ import Mathlib.Mathport.Rename
 
 In this file we define `Monad` and `IsLawfulMonad` instances on `PLift` and `ULift`. -/
 
-
-universe u v
+universe u v u' v'
 
 namespace PLift
 
@@ -90,16 +88,14 @@ end PLift
 
 namespace ULift
 
-variable {α : Type u} {β : Type v}
+variable {α : Type u} {β : Type v} {f : α → β}
 
 /-- Functorial action. -/
-protected def map (f : α → β) (a : ULift α) : ULift β :=
-  ULift.up.{u} (f a.down)
+protected def map (f : α → β) (a : ULift.{u'} α) : ULift.{v'} β := ULift.up.{v'} (f a.down)
 #align ulift.map ULift.map
 
 @[simp]
-theorem map_up (f : α → β) (a : α) : (ULift.up.{u} a).map f = ULift.up.{u} (f a) :=
-  rfl
+theorem map_up (f : α → β) (a : α) : (ULift.up.{u'} a).map f = ULift.up.{v'} (f a) := rfl
 #align ulift.map_up ULift.map_up
 
 /-- Embedding of pure values. -/
chore: only four spaces for subsequent lines (#7286)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -155,7 +155,7 @@ instance : LawfulMonad ULift where
 
 @[simp]
 theorem rec.constant {α : Type u} {β : Sort v} (b : β) :
-     (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b := rfl
+    (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b := rfl
 #align ulift.rec.constant ULift.rec.constant
 
 end ULift
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Jannis Limperg
-
-! This file was ported from Lean 3 source module control.ulift
-! leanprover-community/mathlib commit 99e8971dc62f1f7ecf693d75e75fbbabd55849de
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 
 import Mathlib.Mathport.Rename
 
+#align_import control.ulift from "leanprover-community/mathlib"@"99e8971dc62f1f7ecf693d75e75fbbabd55849de"
+
 /-!
 # Monadic instances for `ULift` and `PLift`
 
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -87,7 +87,6 @@ instance : LawfulMonad PLift where
 @[simp]
 theorem rec.constant {α : Sort u} {β : Type v} (b : β) :
     (@PLift.rec α (fun _ => β) fun _ => b) = fun _ => b := rfl
-
 #align plift.rec.constant PLift.rec.constant
 
 end PLift
@@ -160,7 +159,6 @@ instance : LawfulMonad ULift where
 @[simp]
 theorem rec.constant {α : Type u} {β : Sort v} (b : β) :
      (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b := rfl
-
 #align ulift.rec.constant ULift.rec.constant
 
 end ULift
chore: fix most phantom #aligns (#1794)
Diff
@@ -120,17 +120,17 @@ protected def seq {α β} (f : ULift (α → β)) (x : Unit → ULift α) : ULif
 @[simp]
 theorem seq_up (f : α → β) (x : α) : (ULift.up f).seq (fun _ => ULift.up x) = ULift.up (f x) :=
   rfl
-#align ULift.seq_up ULift.seq_up
+#align ulift.seq_up ULift.seq_up
 
 /-- Monadic bind. -/
 protected def bind (a : ULift α) (f : α → ULift β) : ULift β :=
   f a.down
-#align ULift.bind ULift.bind
+#align ulift.bind ULift.bind
 
 @[simp]
 theorem bind_up (a : α) (f : α → ULift β) : (ULift.up a).bind f = f a :=
   rfl
-#align ULift.bind_up ULift.bind_up
+#align ulift.bind_up ULift.bind_up
 
 instance : Monad ULift where
   map := @ULift.map
@@ -161,6 +161,6 @@ instance : LawfulMonad ULift where
 theorem rec.constant {α : Type u} {β : Sort v} (b : β) :
      (@ULift.rec α (fun _ => β) fun _ => b) = fun _ => b := rfl
 
-#align ULift.rec.constant ULift.rec.constant
+#align ulift.rec.constant ULift.rec.constant
 
 end ULift
chore: add source headers to ported theory files (#1094)

The script used to do this is included. The yaml file was obtained from https://raw.githubusercontent.com/wiki/leanprover-community/mathlib/mathlib4-port-status.md

Diff
@@ -2,6 +2,11 @@
 Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Jannis Limperg
+
+! This file was ported from Lean 3 source module control.ulift
+! leanprover-community/mathlib commit 99e8971dc62f1f7ecf693d75e75fbbabd55849de
+! Please do not edit these lines, except to modify the commit id
+! if you have ported upstream changes.
 -/
 
 import Mathlib.Mathport.Rename

Dependencies

1 files ported (100.0%)
123 lines ported (100.0%)

All dependencies are ported!