Created
April 29, 2024 23:34
-
-
Save semorrison/6d47ac209a9d68dd582d9ae447ae3332 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[init] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
case x_9 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
Bool.true → | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_32[6, 0] : u8 := x_15; | |
sset x_32[6, 1] : u8 := x_16; | |
sset x_32[6, 2] : u8 := x_19; | |
let x_36 : obj := Array.uset ◾ x_11 x_6 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 1; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_31; | |
sset x_32[6, 1] : u8 := x_14; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 0; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_31; | |
sset x_32[6, 1] : u8 := x_14; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 1; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_14; | |
sset x_32[6, 1] : u8 := x_31; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
case x_4 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_23 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
block_29 (x_32 : obj) := | |
let x_33 : obj := ctor_3[Std.Format.text] x_32; | |
let x_34 : obj := ctor_0[Lean.MessageData.ofFormat] x_33; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_35 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_36 : obj := ctor_1[List.cons] x_22 x_35; | |
let x_37 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_38 : obj := ctor_1[List.cons] x_37 x_36; | |
let x_39 : obj := ctor_1[List.cons] x_34 x_38; | |
let x_40 : obj := ctor_1[List.cons] x_28 x_39; | |
let x_41 : obj := ctor_1[List.cons] x_18 x_40; | |
let x_42 : obj := ctor_1[List.cons] x_17 x_41; | |
let x_43 : obj := ctor_1[List.cons] x_16 x_42; | |
let x_44 : obj := ctor_1[List.cons] x_15 x_43; | |
let x_45 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_46 : obj := Lean.MessageData.joinSep x_44 x_45; | |
let x_47 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_48 : obj := ctor_7[Lean.MessageData.compose] x_47 x_46; | |
let x_49 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_50 : obj := ctor_7[Lean.MessageData.compose] x_48 x_49; | |
let x_51 : obj := 1; | |
let x_52 : obj := ctor_5[Lean.MessageData.nest] x_51 x_50; | |
let x_53 : obj := ctor_6[Lean.MessageData.group] x_52; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_2; | |
let x_55 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_57 : obj := ctor_1[List.cons] x_22 x_56; | |
let x_58 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_59 : obj := ctor_1[List.cons] x_58 x_57; | |
let x_60 : obj := ctor_1[List.cons] x_34 x_59; | |
let x_61 : obj := ctor_1[List.cons] x_28 x_60; | |
let x_62 : obj := ctor_1[List.cons] x_18 x_61; | |
let x_63 : obj := ctor_1[List.cons] x_17 x_62; | |
let x_64 : obj := ctor_1[List.cons] x_16 x_63; | |
let x_65 : obj := ctor_1[List.cons] x_15 x_64; | |
let x_66 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_67 : obj := Lean.MessageData.joinSep x_65 x_66; | |
let x_68 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_69 : obj := ctor_7[Lean.MessageData.compose] x_68 x_67; | |
let x_70 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_71 : obj := ctor_7[Lean.MessageData.compose] x_69 x_70; | |
let x_72 : obj := 1; | |
let x_73 : obj := ctor_5[Lean.MessageData.nest] x_72 x_71; | |
let x_74 : obj := ctor_6[Lean.MessageData.group] x_73; | |
let x_75 : obj := ctor_1[List.cons] x_74 x_2; | |
let x_76 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_75; | |
ret x_76 | |
Option.some → | |
let x_77 : obj := proj[0] x_12; | |
let x_78 : obj := Lean.MessageData.ofExpr x_77; | |
case x_14 : obj of | |
Bool.false → | |
let x_79 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_80 : obj := ctor_1[List.cons] x_22 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_78 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_34 x_81; | |
let x_83 : obj := ctor_1[List.cons] x_28 x_82; | |
let x_84 : obj := ctor_1[List.cons] x_18 x_83; | |
let x_85 : obj := ctor_1[List.cons] x_17 x_84; | |
let x_86 : obj := ctor_1[List.cons] x_16 x_85; | |
let x_87 : obj := ctor_1[List.cons] x_15 x_86; | |
let x_88 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_89 : obj := Lean.MessageData.joinSep x_87 x_88; | |
let x_90 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_91 : obj := ctor_7[Lean.MessageData.compose] x_90 x_89; | |
let x_92 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_93 : obj := ctor_7[Lean.MessageData.compose] x_91 x_92; | |
let x_94 : obj := 1; | |
let x_95 : obj := ctor_5[Lean.MessageData.nest] x_94 x_93; | |
let x_96 : obj := ctor_6[Lean.MessageData.group] x_95; | |
let x_97 : obj := ctor_1[List.cons] x_96 x_2; | |
let x_98 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_97; | |
ret x_98 | |
Bool.true → | |
let x_99 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_100 : obj := ctor_1[List.cons] x_22 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_78 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_34 x_101; | |
let x_103 : obj := ctor_1[List.cons] x_28 x_102; | |
let x_104 : obj := ctor_1[List.cons] x_18 x_103; | |
let x_105 : obj := ctor_1[List.cons] x_17 x_104; | |
let x_106 : obj := ctor_1[List.cons] x_16 x_105; | |
let x_107 : obj := ctor_1[List.cons] x_15 x_106; | |
let x_108 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_109 : obj := Lean.MessageData.joinSep x_107 x_108; | |
let x_110 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_111 : obj := ctor_7[Lean.MessageData.compose] x_110 x_109; | |
let x_112 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_113 : obj := ctor_7[Lean.MessageData.compose] x_111 x_112; | |
let x_114 : obj := 1; | |
let x_115 : obj := ctor_5[Lean.MessageData.nest] x_114 x_113; | |
let x_116 : obj := ctor_6[Lean.MessageData.group] x_115; | |
let x_117 : obj := ctor_1[List.cons] x_116 x_2; | |
let x_118 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_117; | |
ret x_118; | |
case x_11 : obj of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_29 x_30 | |
Bool.true → | |
let x_31 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_29 x_31; | |
case x_10 : obj of | |
Bool.false → | |
let x_24 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_23 x_24 | |
Bool.true → | |
let x_25 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_23 x_25 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_26 : obj := Array.push ◾ x_4 x_22; | |
let x_27 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_29 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_28; | |
ret x_29 | |
Simps.ProjectionRule.add → | |
let x_30 : obj := proj[0] x_6; | |
let x_31 : obj := proj[1] x_6; | |
let x_32 : obj := Array.size ◾ x_4; | |
let x_33 : usize := USize.ofNat x_32; | |
let x_34 : usize := 0; | |
let x_35 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_33 x_34 x_4; | |
let x_36 : u8 := Array.contains._at.Lean.findField?._spec_1 x_35 x_30; | |
case x_36 : obj of | |
Bool.false → | |
let x_37 : obj := ctor_0[Option.none]; | |
let x_38 : u8 := 1; | |
let x_39 : u8 := 0; | |
let x_40 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_41 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_30 x_31 x_30 x_31 x_37 x_40; | |
sset x_41[6, 0] : u8 := x_38; | |
sset x_41[6, 1] : u8 := x_39; | |
sset x_41[6, 2] : u8 := x_39; | |
let x_45 : obj := Array.push ◾ x_4 x_41; | |
let x_46 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_45; | |
ret x_46 | |
Bool.true → | |
let x_47 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_30 x_31 x_33 x_34 x_4; | |
let x_48 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_47; | |
ret x_48 | |
Simps.ProjectionRule.erase → | |
let x_49 : obj := proj[0] x_6; | |
let x_50 : obj := proj[1] x_6; | |
let x_51 : obj := Array.size ◾ x_4; | |
let x_52 : usize := USize.ofNat x_51; | |
let x_53 : usize := 0; | |
let x_54 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_52 x_53 x_4; | |
let x_55 : u8 := Array.contains._at.Lean.findField?._spec_1 x_54 x_49; | |
case x_55 : obj of | |
Bool.false → | |
let x_56 : obj := ctor_0[Option.none]; | |
let x_57 : u8 := 0; | |
let x_58 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_59 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_49 x_50 x_49 x_50 x_56 x_58; | |
sset x_59[6, 0] : u8 := x_57; | |
sset x_59[6, 1] : u8 := x_57; | |
sset x_59[6, 2] : u8 := x_57; | |
let x_63 : obj := Array.push ◾ x_4 x_59; | |
let x_64 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_63; | |
ret x_64 | |
Bool.true → | |
let x_65 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_49 x_50 x_52 x_53 x_4; | |
let x_66 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_65; | |
ret x_66 | |
Simps.ProjectionRule.prefix → | |
let x_67 : obj := proj[0] x_6; | |
let x_68 : obj := proj[1] x_6; | |
let x_69 : obj := Array.size ◾ x_4; | |
let x_70 : usize := USize.ofNat x_69; | |
let x_71 : usize := 0; | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_70 x_71 x_4; | |
let x_73 : u8 := Array.contains._at.Lean.findField?._spec_1 x_72 x_67; | |
case x_73 : obj of | |
Bool.false → | |
let x_74 : obj := ctor_0[Option.none]; | |
let x_75 : u8 := 1; | |
let x_76 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_77 : u8 := 0; | |
let x_78 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_67 x_68 x_67 x_68 x_74 x_76; | |
sset x_78[6, 0] : u8 := x_75; | |
sset x_78[6, 1] : u8 := x_75; | |
sset x_78[6, 2] : u8 := x_77; | |
let x_82 : obj := Array.push ◾ x_4 x_78; | |
let x_83 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_82; | |
ret x_83 | |
Bool.true → | |
let x_84 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_67 x_68 x_70 x_71 x_4; | |
let x_85 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_84; | |
ret x_85 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
case x_14 : obj of | |
EStateM.Result.ok → | |
let x_15 : obj := proj[1] x_14; | |
let x_16 : obj := ctor_0[EStateM.Result.ok] x_1 x_15; | |
ret x_16 | |
EStateM.Result.error → | |
let x_17 : obj := proj[0] x_14; | |
let x_18 : obj := proj[1] x_14; | |
let x_19 : obj := ctor_1[EStateM.Result.error] x_17 x_18; | |
ret x_19 | |
Bool.true → | |
let x_20 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_20 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_11 (x_31 : obj) (x_32 : u8) (x_33 : obj) := | |
case x_32 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[PUnit.unit]; | |
let x_35 : obj := Simps.applyProjectionRules._lambda_2 x_31 x_34 x_3 x_4 x_33; | |
ret x_35 | |
Bool.true → | |
let x_36 : obj := Array.toList ◾ x_31; | |
let x_37 : obj := ctor_0[List.nil]; | |
let x_38 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_36 x_37; | |
let x_39 : obj := Lean.MessageData.ofList x_38; | |
let x_40 : obj := Simps.applyProjectionRules._closed_2; | |
let x_41 : obj := ctor_7[Lean.MessageData.compose] x_40 x_39; | |
let x_42 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_41 x_42; | |
let x_44 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_43 x_3 x_4 x_33; | |
case x_44 : obj of | |
EStateM.Result.ok → | |
let x_45 : obj := proj[0] x_44; | |
let x_46 : obj := proj[1] x_44; | |
let x_47 : obj := Simps.applyProjectionRules._lambda_2 x_31 x_45 x_3 x_4 x_46; | |
ret x_47 | |
EStateM.Result.error → | |
let x_48 : obj := proj[0] x_44; | |
let x_49 : obj := proj[1] x_44; | |
let x_50 : obj := ctor_1[EStateM.Result.error] x_48 x_49; | |
ret x_50; | |
case x_8 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_12 : obj := proj[0] x_10; | |
let x_13 : obj := proj[1] x_10; | |
jmp block_11 x_1 x_12 x_13 | |
EStateM.Result.error → | |
let x_14 : obj := proj[0] x_10; | |
let x_15 : obj := proj[1] x_10; | |
let x_16 : obj := ctor_1[EStateM.Result.error] x_14 x_15; | |
ret x_16 | |
Bool.true → | |
let x_17 : u8 := Nat.decLe x_6 x_6; | |
case x_17 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_18 : obj := proj[0] x_10; | |
let x_19 : obj := proj[1] x_10; | |
jmp block_11 x_1 x_18 x_19 | |
EStateM.Result.error → | |
let x_20 : obj := proj[0] x_10; | |
let x_21 : obj := proj[1] x_10; | |
let x_22 : obj := ctor_1[EStateM.Result.error] x_20 x_21; | |
ret x_22 | |
Bool.true → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_23 : obj := proj[0] x_10; | |
let x_24 : obj := proj[1] x_10; | |
let x_25 : usize := 0; | |
let x_26 : usize := USize.ofNat x_6; | |
let x_27 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_25 x_26 x_1; | |
jmp block_11 x_27 x_23 x_24 | |
EStateM.Result.error → | |
let x_28 : obj := proj[0] x_10; | |
let x_29 : obj := proj[1] x_10; | |
let x_30 : obj := ctor_1[EStateM.Result.error] x_28 x_29; | |
ret x_30 | |
[elim_dead_branches] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
case x_9 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
Bool.true → | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_32[6, 0] : u8 := x_15; | |
sset x_32[6, 1] : u8 := x_16; | |
sset x_32[6, 2] : u8 := x_19; | |
let x_36 : obj := Array.uset ◾ x_11 x_6 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 1; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_31; | |
sset x_32[6, 1] : u8 := x_14; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 0; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_31; | |
sset x_32[6, 1] : u8 := x_14; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_29 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_30 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_29; | |
ret x_30 | |
Bool.true → | |
let x_31 : u8 := 1; | |
let x_32 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_32[6, 0] : u8 := x_14; | |
sset x_32[6, 1] : u8 := x_31; | |
sset x_32[6, 2] : u8 := x_17; | |
let x_36 : obj := Array.uset ◾ x_9 x_4 x_32 ◾; | |
let x_37 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_36; | |
ret x_37 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
case x_4 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_23 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
block_29 (x_32 : obj) := | |
let x_33 : obj := ctor_3[Std.Format.text] x_32; | |
let x_34 : obj := ctor_0[Lean.MessageData.ofFormat] x_33; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_35 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_36 : obj := ctor_1[List.cons] x_22 x_35; | |
let x_37 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_38 : obj := ctor_1[List.cons] x_37 x_36; | |
let x_39 : obj := ctor_1[List.cons] x_34 x_38; | |
let x_40 : obj := ctor_1[List.cons] x_28 x_39; | |
let x_41 : obj := ctor_1[List.cons] x_18 x_40; | |
let x_42 : obj := ctor_1[List.cons] x_17 x_41; | |
let x_43 : obj := ctor_1[List.cons] x_16 x_42; | |
let x_44 : obj := ctor_1[List.cons] x_15 x_43; | |
let x_45 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_46 : obj := Lean.MessageData.joinSep x_44 x_45; | |
let x_47 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_48 : obj := ctor_7[Lean.MessageData.compose] x_47 x_46; | |
let x_49 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_50 : obj := ctor_7[Lean.MessageData.compose] x_48 x_49; | |
let x_51 : obj := 1; | |
let x_52 : obj := ctor_5[Lean.MessageData.nest] x_51 x_50; | |
let x_53 : obj := ctor_6[Lean.MessageData.group] x_52; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_2; | |
let x_55 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_57 : obj := ctor_1[List.cons] x_22 x_56; | |
let x_58 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_59 : obj := ctor_1[List.cons] x_58 x_57; | |
let x_60 : obj := ctor_1[List.cons] x_34 x_59; | |
let x_61 : obj := ctor_1[List.cons] x_28 x_60; | |
let x_62 : obj := ctor_1[List.cons] x_18 x_61; | |
let x_63 : obj := ctor_1[List.cons] x_17 x_62; | |
let x_64 : obj := ctor_1[List.cons] x_16 x_63; | |
let x_65 : obj := ctor_1[List.cons] x_15 x_64; | |
let x_66 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_67 : obj := Lean.MessageData.joinSep x_65 x_66; | |
let x_68 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_69 : obj := ctor_7[Lean.MessageData.compose] x_68 x_67; | |
let x_70 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_71 : obj := ctor_7[Lean.MessageData.compose] x_69 x_70; | |
let x_72 : obj := 1; | |
let x_73 : obj := ctor_5[Lean.MessageData.nest] x_72 x_71; | |
let x_74 : obj := ctor_6[Lean.MessageData.group] x_73; | |
let x_75 : obj := ctor_1[List.cons] x_74 x_2; | |
let x_76 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_75; | |
ret x_76 | |
Option.some → | |
let x_77 : obj := proj[0] x_12; | |
let x_78 : obj := Lean.MessageData.ofExpr x_77; | |
case x_14 : obj of | |
Bool.false → | |
let x_79 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_80 : obj := ctor_1[List.cons] x_22 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_78 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_34 x_81; | |
let x_83 : obj := ctor_1[List.cons] x_28 x_82; | |
let x_84 : obj := ctor_1[List.cons] x_18 x_83; | |
let x_85 : obj := ctor_1[List.cons] x_17 x_84; | |
let x_86 : obj := ctor_1[List.cons] x_16 x_85; | |
let x_87 : obj := ctor_1[List.cons] x_15 x_86; | |
let x_88 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_89 : obj := Lean.MessageData.joinSep x_87 x_88; | |
let x_90 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_91 : obj := ctor_7[Lean.MessageData.compose] x_90 x_89; | |
let x_92 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_93 : obj := ctor_7[Lean.MessageData.compose] x_91 x_92; | |
let x_94 : obj := 1; | |
let x_95 : obj := ctor_5[Lean.MessageData.nest] x_94 x_93; | |
let x_96 : obj := ctor_6[Lean.MessageData.group] x_95; | |
let x_97 : obj := ctor_1[List.cons] x_96 x_2; | |
let x_98 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_97; | |
ret x_98 | |
Bool.true → | |
let x_99 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_100 : obj := ctor_1[List.cons] x_22 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_78 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_34 x_101; | |
let x_103 : obj := ctor_1[List.cons] x_28 x_102; | |
let x_104 : obj := ctor_1[List.cons] x_18 x_103; | |
let x_105 : obj := ctor_1[List.cons] x_17 x_104; | |
let x_106 : obj := ctor_1[List.cons] x_16 x_105; | |
let x_107 : obj := ctor_1[List.cons] x_15 x_106; | |
let x_108 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_109 : obj := Lean.MessageData.joinSep x_107 x_108; | |
let x_110 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_111 : obj := ctor_7[Lean.MessageData.compose] x_110 x_109; | |
let x_112 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_113 : obj := ctor_7[Lean.MessageData.compose] x_111 x_112; | |
let x_114 : obj := 1; | |
let x_115 : obj := ctor_5[Lean.MessageData.nest] x_114 x_113; | |
let x_116 : obj := ctor_6[Lean.MessageData.group] x_115; | |
let x_117 : obj := ctor_1[List.cons] x_116 x_2; | |
let x_118 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_117; | |
ret x_118; | |
case x_11 : obj of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_29 x_30 | |
Bool.true → | |
let x_31 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_29 x_31; | |
case x_10 : obj of | |
Bool.false → | |
let x_24 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_23 x_24 | |
Bool.true → | |
let x_25 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_23 x_25 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_26 : obj := Array.push ◾ x_4 x_22; | |
let x_27 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_29 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_28; | |
ret x_29 | |
Simps.ProjectionRule.add → | |
let x_30 : obj := proj[0] x_6; | |
let x_31 : obj := proj[1] x_6; | |
let x_32 : obj := Array.size ◾ x_4; | |
let x_33 : usize := USize.ofNat x_32; | |
let x_34 : usize := 0; | |
let x_35 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_33 x_34 x_4; | |
let x_36 : u8 := Array.contains._at.Lean.findField?._spec_1 x_35 x_30; | |
case x_36 : obj of | |
Bool.false → | |
let x_37 : obj := ctor_0[Option.none]; | |
let x_38 : u8 := 1; | |
let x_39 : u8 := 0; | |
let x_40 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_41 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_30 x_31 x_30 x_31 x_37 x_40; | |
sset x_41[6, 0] : u8 := x_38; | |
sset x_41[6, 1] : u8 := x_39; | |
sset x_41[6, 2] : u8 := x_39; | |
let x_45 : obj := Array.push ◾ x_4 x_41; | |
let x_46 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_45; | |
ret x_46 | |
Bool.true → | |
let x_47 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_30 x_31 x_33 x_34 x_4; | |
let x_48 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_47; | |
ret x_48 | |
Simps.ProjectionRule.erase → | |
let x_49 : obj := proj[0] x_6; | |
let x_50 : obj := proj[1] x_6; | |
let x_51 : obj := Array.size ◾ x_4; | |
let x_52 : usize := USize.ofNat x_51; | |
let x_53 : usize := 0; | |
let x_54 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_52 x_53 x_4; | |
let x_55 : u8 := Array.contains._at.Lean.findField?._spec_1 x_54 x_49; | |
case x_55 : obj of | |
Bool.false → | |
let x_56 : obj := ctor_0[Option.none]; | |
let x_57 : u8 := 0; | |
let x_58 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_59 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_49 x_50 x_49 x_50 x_56 x_58; | |
sset x_59[6, 0] : u8 := x_57; | |
sset x_59[6, 1] : u8 := x_57; | |
sset x_59[6, 2] : u8 := x_57; | |
let x_63 : obj := Array.push ◾ x_4 x_59; | |
let x_64 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_63; | |
ret x_64 | |
Bool.true → | |
let x_65 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_49 x_50 x_52 x_53 x_4; | |
let x_66 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_65; | |
ret x_66 | |
Simps.ProjectionRule.prefix → | |
let x_67 : obj := proj[0] x_6; | |
let x_68 : obj := proj[1] x_6; | |
let x_69 : obj := Array.size ◾ x_4; | |
let x_70 : usize := USize.ofNat x_69; | |
let x_71 : usize := 0; | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_70 x_71 x_4; | |
let x_73 : u8 := Array.contains._at.Lean.findField?._spec_1 x_72 x_67; | |
case x_73 : obj of | |
Bool.false → | |
let x_74 : obj := ctor_0[Option.none]; | |
let x_75 : u8 := 1; | |
let x_76 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_77 : u8 := 0; | |
let x_78 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_67 x_68 x_67 x_68 x_74 x_76; | |
sset x_78[6, 0] : u8 := x_75; | |
sset x_78[6, 1] : u8 := x_75; | |
sset x_78[6, 2] : u8 := x_77; | |
let x_82 : obj := Array.push ◾ x_4 x_78; | |
let x_83 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_82; | |
ret x_83 | |
Bool.true → | |
let x_84 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_67 x_68 x_70 x_71 x_4; | |
let x_85 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_84; | |
ret x_85 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
case x_14 : obj of | |
EStateM.Result.ok → | |
⊥ | |
EStateM.Result.error → | |
let x_17 : obj := proj[0] x_14; | |
let x_18 : obj := proj[1] x_14; | |
let x_19 : obj := ctor_1[EStateM.Result.error] x_17 x_18; | |
ret x_19 | |
Bool.true → | |
let x_20 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_20 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_11 (x_31 : obj) (x_32 : u8) (x_33 : obj) := | |
case x_32 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[PUnit.unit]; | |
let x_35 : obj := Simps.applyProjectionRules._lambda_2 x_31 x_34 x_3 x_4 x_33; | |
ret x_35 | |
Bool.true → | |
let x_36 : obj := Array.toList ◾ x_31; | |
let x_37 : obj := ctor_0[List.nil]; | |
let x_38 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_36 x_37; | |
let x_39 : obj := Lean.MessageData.ofList x_38; | |
let x_40 : obj := Simps.applyProjectionRules._closed_2; | |
let x_41 : obj := ctor_7[Lean.MessageData.compose] x_40 x_39; | |
let x_42 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_41 x_42; | |
let x_44 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_43 x_3 x_4 x_33; | |
case x_44 : obj of | |
EStateM.Result.ok → | |
let x_45 : obj := proj[0] x_44; | |
let x_46 : obj := proj[1] x_44; | |
let x_47 : obj := Simps.applyProjectionRules._lambda_2 x_31 x_45 x_3 x_4 x_46; | |
ret x_47 | |
EStateM.Result.error → | |
⊥; | |
case x_8 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_12 : obj := proj[0] x_10; | |
let x_13 : obj := proj[1] x_10; | |
jmp block_11 x_1 x_12 x_13 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
let x_17 : u8 := Nat.decLe x_6 x_6; | |
case x_17 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_18 : obj := proj[0] x_10; | |
let x_19 : obj := proj[1] x_10; | |
jmp block_11 x_1 x_18 x_19 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_23 : obj := proj[0] x_10; | |
let x_24 : obj := proj[1] x_10; | |
let x_25 : usize := 0; | |
let x_26 : usize := USize.ofNat x_6; | |
let x_27 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_25 x_26 x_1; | |
jmp block_11 x_27 x_23 x_24 | |
EStateM.Result.error → | |
⊥ | |
[push_proj] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
case x_9 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_27 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_29[6, 0] : u8 := x_15; | |
sset x_29[6, 1] : u8 := x_16; | |
sset x_29[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 0; | |
let x_29 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_14; | |
sset x_29[6, 1] : u8 := x_28; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
case x_4 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_116 (x_23 : obj) := | |
let x_24 : obj := ctor_3[Std.Format.text] x_23; | |
let x_25 : obj := ctor_0[Lean.MessageData.ofFormat] x_24; | |
block_113 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_29 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_30 : obj := ctor_1[List.cons] x_22 x_29; | |
let x_31 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_32 : obj := ctor_1[List.cons] x_31 x_30; | |
let x_33 : obj := ctor_1[List.cons] x_28 x_32; | |
let x_34 : obj := ctor_1[List.cons] x_25 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_18 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_17 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_16 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_15 x_37; | |
let x_39 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_40 : obj := Lean.MessageData.joinSep x_38 x_39; | |
let x_41 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_42 : obj := ctor_7[Lean.MessageData.compose] x_41 x_40; | |
let x_43 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_44 : obj := ctor_7[Lean.MessageData.compose] x_42 x_43; | |
let x_45 : obj := 1; | |
let x_46 : obj := ctor_5[Lean.MessageData.nest] x_45 x_44; | |
let x_47 : obj := ctor_6[Lean.MessageData.group] x_46; | |
let x_48 : obj := ctor_1[List.cons] x_47 x_2; | |
let x_49 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_48; | |
ret x_49 | |
Bool.true → | |
let x_50 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_51 : obj := ctor_1[List.cons] x_22 x_50; | |
let x_52 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_53 : obj := ctor_1[List.cons] x_52 x_51; | |
let x_54 : obj := ctor_1[List.cons] x_28 x_53; | |
let x_55 : obj := ctor_1[List.cons] x_25 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_18 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_17 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_16 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_15 x_58; | |
let x_60 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_61 : obj := Lean.MessageData.joinSep x_59 x_60; | |
let x_62 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_63 : obj := ctor_7[Lean.MessageData.compose] x_62 x_61; | |
let x_64 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_65 : obj := ctor_7[Lean.MessageData.compose] x_63 x_64; | |
let x_66 : obj := 1; | |
let x_67 : obj := ctor_5[Lean.MessageData.nest] x_66 x_65; | |
let x_68 : obj := ctor_6[Lean.MessageData.group] x_67; | |
let x_69 : obj := ctor_1[List.cons] x_68 x_2; | |
let x_70 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_69; | |
ret x_70 | |
Option.some → | |
let x_71 : obj := proj[0] x_12; | |
let x_72 : obj := Lean.MessageData.ofExpr x_71; | |
case x_14 : obj of | |
Bool.false → | |
let x_73 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_74 : obj := ctor_1[List.cons] x_22 x_73; | |
let x_75 : obj := ctor_1[List.cons] x_72 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_28 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_25 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_18 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_17 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_16 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_15 x_80; | |
let x_82 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_83 : obj := Lean.MessageData.joinSep x_81 x_82; | |
let x_84 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_85 : obj := ctor_7[Lean.MessageData.compose] x_84 x_83; | |
let x_86 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_87 : obj := ctor_7[Lean.MessageData.compose] x_85 x_86; | |
let x_88 : obj := 1; | |
let x_89 : obj := ctor_5[Lean.MessageData.nest] x_88 x_87; | |
let x_90 : obj := ctor_6[Lean.MessageData.group] x_89; | |
let x_91 : obj := ctor_1[List.cons] x_90 x_2; | |
let x_92 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_91; | |
ret x_92 | |
Bool.true → | |
let x_93 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_94 : obj := ctor_1[List.cons] x_22 x_93; | |
let x_95 : obj := ctor_1[List.cons] x_72 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_28 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_25 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_18 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_17 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_16 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_15 x_100; | |
let x_102 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_103 : obj := Lean.MessageData.joinSep x_101 x_102; | |
let x_104 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_105 : obj := ctor_7[Lean.MessageData.compose] x_104 x_103; | |
let x_106 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_107 : obj := ctor_7[Lean.MessageData.compose] x_105 x_106; | |
let x_108 : obj := 1; | |
let x_109 : obj := ctor_5[Lean.MessageData.nest] x_108 x_107; | |
let x_110 : obj := ctor_6[Lean.MessageData.group] x_109; | |
let x_111 : obj := ctor_1[List.cons] x_110 x_2; | |
let x_112 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_111; | |
ret x_112; | |
case x_11 : obj of | |
Bool.false → | |
let x_114 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_113 x_114 | |
Bool.true → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_113 x_115; | |
case x_10 : obj of | |
Bool.false → | |
let x_117 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_116 x_117 | |
Bool.true → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_116 x_118 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : obj of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : obj of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
case x_14 : obj of | |
EStateM.Result.ok → | |
⊥ | |
EStateM.Result.error → | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_17 : obj := ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_17 | |
Bool.true → | |
let x_18 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_18 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : obj of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
case x_24 : obj of | |
EStateM.Result.ok → | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27 | |
EStateM.Result.error → | |
⊥; | |
case x_8 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_29 x_30 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_32 x_33 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
jmp block_28 x_38 x_34 x_35 | |
EStateM.Result.error → | |
⊥ | |
[reset_reuse] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
case x_9 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_33 : obj := reset[6] x_9; | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_27 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_29[6, 0] : u8 := x_15; | |
sset x_29[6, 1] : u8 := x_16; | |
sset x_29[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 0; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_14; | |
sset x_29[6, 1] : u8 := x_28; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_12 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := reuse x_12 in ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_13 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := reuse x_13 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_11 : obj := reset[2] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := reuse x_11 in ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
case x_4 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_5 : obj := proj[1] x_1; | |
let x_121 : obj := reset[2] x_1; | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_116 (x_23 : obj) := | |
let x_24 : obj := ctor_3[Std.Format.text] x_23; | |
let x_25 : obj := ctor_0[Lean.MessageData.ofFormat] x_24; | |
block_113 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_29 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_30 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_29; | |
let x_31 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_32 : obj := ctor_1[List.cons] x_31 x_30; | |
let x_33 : obj := ctor_1[List.cons] x_28 x_32; | |
let x_34 : obj := ctor_1[List.cons] x_25 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_18 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_17 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_16 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_15 x_37; | |
let x_39 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_40 : obj := Lean.MessageData.joinSep x_38 x_39; | |
let x_41 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_42 : obj := ctor_7[Lean.MessageData.compose] x_41 x_40; | |
let x_43 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_44 : obj := ctor_7[Lean.MessageData.compose] x_42 x_43; | |
let x_45 : obj := 1; | |
let x_46 : obj := ctor_5[Lean.MessageData.nest] x_45 x_44; | |
let x_47 : obj := ctor_6[Lean.MessageData.group] x_46; | |
let x_48 : obj := ctor_1[List.cons] x_47 x_2; | |
let x_49 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_48; | |
ret x_49 | |
Bool.true → | |
let x_50 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_51 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_50; | |
let x_52 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_53 : obj := ctor_1[List.cons] x_52 x_51; | |
let x_54 : obj := ctor_1[List.cons] x_28 x_53; | |
let x_55 : obj := ctor_1[List.cons] x_25 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_18 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_17 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_16 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_15 x_58; | |
let x_60 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_61 : obj := Lean.MessageData.joinSep x_59 x_60; | |
let x_62 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_63 : obj := ctor_7[Lean.MessageData.compose] x_62 x_61; | |
let x_64 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_65 : obj := ctor_7[Lean.MessageData.compose] x_63 x_64; | |
let x_66 : obj := 1; | |
let x_67 : obj := ctor_5[Lean.MessageData.nest] x_66 x_65; | |
let x_68 : obj := ctor_6[Lean.MessageData.group] x_67; | |
let x_69 : obj := ctor_1[List.cons] x_68 x_2; | |
let x_70 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_69; | |
ret x_70 | |
Option.some → | |
let x_71 : obj := proj[0] x_12; | |
let x_72 : obj := Lean.MessageData.ofExpr x_71; | |
case x_14 : obj of | |
Bool.false → | |
let x_73 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_74 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_73; | |
let x_75 : obj := ctor_1[List.cons] x_72 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_28 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_25 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_18 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_17 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_16 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_15 x_80; | |
let x_82 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_83 : obj := Lean.MessageData.joinSep x_81 x_82; | |
let x_84 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_85 : obj := ctor_7[Lean.MessageData.compose] x_84 x_83; | |
let x_86 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_87 : obj := ctor_7[Lean.MessageData.compose] x_85 x_86; | |
let x_88 : obj := 1; | |
let x_89 : obj := ctor_5[Lean.MessageData.nest] x_88 x_87; | |
let x_90 : obj := ctor_6[Lean.MessageData.group] x_89; | |
let x_91 : obj := ctor_1[List.cons] x_90 x_2; | |
let x_92 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_91; | |
ret x_92 | |
Bool.true → | |
let x_93 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_94 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_93; | |
let x_95 : obj := ctor_1[List.cons] x_72 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_28 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_25 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_18 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_17 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_16 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_15 x_100; | |
let x_102 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_103 : obj := Lean.MessageData.joinSep x_101 x_102; | |
let x_104 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_105 : obj := ctor_7[Lean.MessageData.compose] x_104 x_103; | |
let x_106 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_107 : obj := ctor_7[Lean.MessageData.compose] x_105 x_106; | |
let x_108 : obj := 1; | |
let x_109 : obj := ctor_5[Lean.MessageData.nest] x_108 x_107; | |
let x_110 : obj := ctor_6[Lean.MessageData.group] x_109; | |
let x_111 : obj := ctor_1[List.cons] x_110 x_2; | |
let x_112 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_111; | |
ret x_112; | |
case x_11 : obj of | |
Bool.false → | |
let x_114 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_113 x_114 | |
Bool.true → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_113 x_115; | |
case x_10 : obj of | |
Bool.false → | |
let x_117 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_116 x_117 | |
Bool.true → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_116 x_118 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : obj of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : obj of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
case x_14 : obj of | |
EStateM.Result.ok → | |
⊥ | |
EStateM.Result.error → | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_20 : obj := reset[2] x_14; | |
let x_17 : obj := reuse x_20 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_17 | |
Bool.true → | |
let x_18 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_18 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : obj of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
case x_24 : obj of | |
EStateM.Result.ok → | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27 | |
EStateM.Result.error → | |
⊥; | |
case x_8 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_29 x_30 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_32 x_33 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
jmp block_28 x_38 x_34 x_35 | |
EStateM.Result.error → | |
⊥ | |
[elim_dead] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
case x_9 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_33 : obj := reset[6] x_9; | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_27 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_29[6, 0] : u8 := x_15; | |
sset x_29[6, 1] : u8 := x_16; | |
sset x_29[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 0; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
case x_7 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_14; | |
sset x_29[6, 1] : u8 := x_28; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_12 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := reuse x_12 in ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_13 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := reuse x_13 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_11 : obj := reset[2] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := reuse x_11 in ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
case x_4 : obj of | |
Simps.ParsedProjectionData.mk → | |
let x_5 : obj := proj[1] x_1; | |
let x_121 : obj := reset[2] x_1; | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_116 (x_23 : obj) := | |
let x_24 : obj := ctor_3[Std.Format.text] x_23; | |
let x_25 : obj := ctor_0[Lean.MessageData.ofFormat] x_24; | |
block_113 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_29 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_30 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_29; | |
let x_31 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_32 : obj := ctor_1[List.cons] x_31 x_30; | |
let x_33 : obj := ctor_1[List.cons] x_28 x_32; | |
let x_34 : obj := ctor_1[List.cons] x_25 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_18 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_17 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_16 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_15 x_37; | |
let x_39 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_40 : obj := Lean.MessageData.joinSep x_38 x_39; | |
let x_41 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_42 : obj := ctor_7[Lean.MessageData.compose] x_41 x_40; | |
let x_43 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_44 : obj := ctor_7[Lean.MessageData.compose] x_42 x_43; | |
let x_45 : obj := 1; | |
let x_46 : obj := ctor_5[Lean.MessageData.nest] x_45 x_44; | |
let x_47 : obj := ctor_6[Lean.MessageData.group] x_46; | |
let x_48 : obj := ctor_1[List.cons] x_47 x_2; | |
let x_49 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_48; | |
ret x_49 | |
Bool.true → | |
let x_50 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_51 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_50; | |
let x_52 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_53 : obj := ctor_1[List.cons] x_52 x_51; | |
let x_54 : obj := ctor_1[List.cons] x_28 x_53; | |
let x_55 : obj := ctor_1[List.cons] x_25 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_18 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_17 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_16 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_15 x_58; | |
let x_60 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_61 : obj := Lean.MessageData.joinSep x_59 x_60; | |
let x_62 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_63 : obj := ctor_7[Lean.MessageData.compose] x_62 x_61; | |
let x_64 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_65 : obj := ctor_7[Lean.MessageData.compose] x_63 x_64; | |
let x_66 : obj := 1; | |
let x_67 : obj := ctor_5[Lean.MessageData.nest] x_66 x_65; | |
let x_68 : obj := ctor_6[Lean.MessageData.group] x_67; | |
let x_69 : obj := ctor_1[List.cons] x_68 x_2; | |
let x_70 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_69; | |
ret x_70 | |
Option.some → | |
let x_71 : obj := proj[0] x_12; | |
let x_72 : obj := Lean.MessageData.ofExpr x_71; | |
case x_14 : obj of | |
Bool.false → | |
let x_73 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_74 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_73; | |
let x_75 : obj := ctor_1[List.cons] x_72 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_28 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_25 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_18 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_17 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_16 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_15 x_80; | |
let x_82 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_83 : obj := Lean.MessageData.joinSep x_81 x_82; | |
let x_84 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_85 : obj := ctor_7[Lean.MessageData.compose] x_84 x_83; | |
let x_86 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_87 : obj := ctor_7[Lean.MessageData.compose] x_85 x_86; | |
let x_88 : obj := 1; | |
let x_89 : obj := ctor_5[Lean.MessageData.nest] x_88 x_87; | |
let x_90 : obj := ctor_6[Lean.MessageData.group] x_89; | |
let x_91 : obj := ctor_1[List.cons] x_90 x_2; | |
let x_92 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_91; | |
ret x_92 | |
Bool.true → | |
let x_93 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_94 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_93; | |
let x_95 : obj := ctor_1[List.cons] x_72 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_28 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_25 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_18 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_17 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_16 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_15 x_100; | |
let x_102 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_103 : obj := Lean.MessageData.joinSep x_101 x_102; | |
let x_104 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_105 : obj := ctor_7[Lean.MessageData.compose] x_104 x_103; | |
let x_106 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_107 : obj := ctor_7[Lean.MessageData.compose] x_105 x_106; | |
let x_108 : obj := 1; | |
let x_109 : obj := ctor_5[Lean.MessageData.nest] x_108 x_107; | |
let x_110 : obj := ctor_6[Lean.MessageData.group] x_109; | |
let x_111 : obj := ctor_1[List.cons] x_110 x_2; | |
let x_112 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_111; | |
ret x_112; | |
case x_11 : obj of | |
Bool.false → | |
let x_114 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_113 x_114 | |
Bool.true → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_113 x_115; | |
case x_10 : obj of | |
Bool.false → | |
let x_117 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_116 x_117 | |
Bool.true → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_116 x_118 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : obj of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : obj of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
case x_14 : obj of | |
EStateM.Result.ok → | |
⊥ | |
EStateM.Result.error → | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_20 : obj := reset[2] x_14; | |
let x_17 : obj := reuse x_20 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_17 | |
Bool.true → | |
let x_18 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_18 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : obj of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
case x_24 : obj of | |
EStateM.Result.ok → | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27 | |
EStateM.Result.error → | |
⊥; | |
case x_8 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_29 x_30 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : obj of | |
Bool.false → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_32 x_33 | |
EStateM.Result.error → | |
⊥ | |
Bool.true → | |
case x_10 : obj of | |
EStateM.Result.ok → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
jmp block_28 x_38 x_34 x_35 | |
EStateM.Result.error → | |
⊥ | |
[simp_case] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_33 : obj := reset[6] x_9; | |
let x_25 : u8 := Lean.Syntax.isMissing x_13; | |
case x_25 : obj of | |
Bool.false → | |
let x_26 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_26[6, 0] : u8 := x_15; | |
sset x_26[6, 1] : u8 := x_16; | |
sset x_26[6, 2] : u8 := x_19; | |
let x_27 : obj := Array.uset ◾ x_11 x_6 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_29[6, 0] : u8 := x_15; | |
sset x_29[6, 1] : u8 := x_16; | |
sset x_29[6, 2] : u8 := x_19; | |
let x_30 : obj := Array.uset ◾ x_11 x_6 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 0; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_24; | |
sset x_25[6, 1] : u8 := x_14; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 0; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_28; | |
sset x_29[6, 1] : u8 := x_14; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_33 : obj := reset[6] x_7; | |
let x_23 : u8 := Lean.Syntax.isMissing x_11; | |
case x_23 : obj of | |
Bool.false → | |
let x_24 : u8 := 1; | |
let x_25 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_25[6, 0] : u8 := x_14; | |
sset x_25[6, 1] : u8 := x_24; | |
sset x_25[6, 2] : u8 := x_17; | |
let x_26 : obj := Array.uset ◾ x_9 x_4 x_25 ◾; | |
let x_27 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_26; | |
ret x_27 | |
Bool.true → | |
let x_28 : u8 := 1; | |
let x_29 : obj := reuse x_33 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_29[6, 0] : u8 := x_14; | |
sset x_29[6, 1] : u8 := x_28; | |
sset x_29[6, 2] : u8 := x_17; | |
let x_30 : obj := Array.uset ◾ x_9 x_4 x_29 ◾; | |
let x_31 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_30; | |
ret x_31 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_12 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := reuse x_12 in ctor_1[List.cons] x_9 x_4; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_13 : obj := reset[2] x_3; | |
let x_8 : obj := app x_2 x_6; | |
let x_9 : obj := app x_1 x_8; | |
let x_10 : obj := ctor_0[Lean.MessageData.ofFormat] x_9; | |
let x_11 : obj := reuse x_13 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_11 : obj := reset[2] x_1; | |
let x_6 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_7 : obj := ctor_3[Std.Format.text] x_6; | |
let x_8 : obj := ctor_0[Lean.MessageData.ofFormat] x_7; | |
let x_9 : obj := reuse x_11 in ctor_1[List.cons] x_8 x_2; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_9; | |
ret x_10 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_121 : obj := reset[2] x_1; | |
let x_6 : obj := proj[0] x_4; | |
let x_7 : obj := proj[1] x_4; | |
let x_8 : obj := proj[2] x_4; | |
let x_9 : obj := proj[3] x_4; | |
let x_10 : u8 := sproj[6, 0] x_4; | |
let x_11 : u8 := sproj[6, 1] x_4; | |
let x_12 : obj := proj[4] x_4; | |
let x_13 : obj := proj[5] x_4; | |
let x_14 : u8 := sproj[6, 2] x_4; | |
let x_15 : obj := Lean.MessageData.ofName x_6; | |
let x_16 : obj := Lean.MessageData.ofSyntax x_7; | |
let x_17 : obj := Lean.MessageData.ofName x_8; | |
let x_18 : obj := Lean.MessageData.ofSyntax x_9; | |
let x_19 : obj := Array.toList ◾ x_13; | |
let x_20 : obj := ctor_0[List.nil]; | |
let x_21 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_19 x_20; | |
let x_22 : obj := Lean.MessageData.ofList x_21; | |
block_116 (x_23 : obj) := | |
let x_24 : obj := ctor_3[Std.Format.text] x_23; | |
let x_25 : obj := ctor_0[Lean.MessageData.ofFormat] x_24; | |
block_113 (x_26 : obj) := | |
let x_27 : obj := ctor_3[Std.Format.text] x_26; | |
let x_28 : obj := ctor_0[Lean.MessageData.ofFormat] x_27; | |
case x_12 : obj of | |
Option.none → | |
case x_14 : obj of | |
Bool.false → | |
let x_29 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_30 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_29; | |
let x_31 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_32 : obj := ctor_1[List.cons] x_31 x_30; | |
let x_33 : obj := ctor_1[List.cons] x_28 x_32; | |
let x_34 : obj := ctor_1[List.cons] x_25 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_18 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_17 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_16 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_15 x_37; | |
let x_39 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_40 : obj := Lean.MessageData.joinSep x_38 x_39; | |
let x_41 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_42 : obj := ctor_7[Lean.MessageData.compose] x_41 x_40; | |
let x_43 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_44 : obj := ctor_7[Lean.MessageData.compose] x_42 x_43; | |
let x_45 : obj := 1; | |
let x_46 : obj := ctor_5[Lean.MessageData.nest] x_45 x_44; | |
let x_47 : obj := ctor_6[Lean.MessageData.group] x_46; | |
let x_48 : obj := ctor_1[List.cons] x_47 x_2; | |
let x_49 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_48; | |
ret x_49 | |
Bool.true → | |
let x_50 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_51 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_50; | |
let x_52 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_53 : obj := ctor_1[List.cons] x_52 x_51; | |
let x_54 : obj := ctor_1[List.cons] x_28 x_53; | |
let x_55 : obj := ctor_1[List.cons] x_25 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_18 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_17 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_16 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_15 x_58; | |
let x_60 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_61 : obj := Lean.MessageData.joinSep x_59 x_60; | |
let x_62 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_63 : obj := ctor_7[Lean.MessageData.compose] x_62 x_61; | |
let x_64 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_65 : obj := ctor_7[Lean.MessageData.compose] x_63 x_64; | |
let x_66 : obj := 1; | |
let x_67 : obj := ctor_5[Lean.MessageData.nest] x_66 x_65; | |
let x_68 : obj := ctor_6[Lean.MessageData.group] x_67; | |
let x_69 : obj := ctor_1[List.cons] x_68 x_2; | |
let x_70 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_69; | |
ret x_70 | |
Option.some → | |
let x_71 : obj := proj[0] x_12; | |
let x_72 : obj := Lean.MessageData.ofExpr x_71; | |
case x_14 : obj of | |
Bool.false → | |
let x_73 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_74 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_73; | |
let x_75 : obj := ctor_1[List.cons] x_72 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_28 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_25 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_18 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_17 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_16 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_15 x_80; | |
let x_82 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_83 : obj := Lean.MessageData.joinSep x_81 x_82; | |
let x_84 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_85 : obj := ctor_7[Lean.MessageData.compose] x_84 x_83; | |
let x_86 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_87 : obj := ctor_7[Lean.MessageData.compose] x_85 x_86; | |
let x_88 : obj := 1; | |
let x_89 : obj := ctor_5[Lean.MessageData.nest] x_88 x_87; | |
let x_90 : obj := ctor_6[Lean.MessageData.group] x_89; | |
let x_91 : obj := ctor_1[List.cons] x_90 x_2; | |
let x_92 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_91; | |
ret x_92 | |
Bool.true → | |
let x_93 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_94 : obj := reuse x_121 in ctor_1[List.cons] x_22 x_93; | |
let x_95 : obj := ctor_1[List.cons] x_72 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_28 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_25 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_18 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_17 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_16 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_15 x_100; | |
let x_102 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_103 : obj := Lean.MessageData.joinSep x_101 x_102; | |
let x_104 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_105 : obj := ctor_7[Lean.MessageData.compose] x_104 x_103; | |
let x_106 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_107 : obj := ctor_7[Lean.MessageData.compose] x_105 x_106; | |
let x_108 : obj := 1; | |
let x_109 : obj := ctor_5[Lean.MessageData.nest] x_108 x_107; | |
let x_110 : obj := ctor_6[Lean.MessageData.group] x_109; | |
let x_111 : obj := ctor_1[List.cons] x_110 x_2; | |
let x_112 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_111; | |
ret x_112; | |
case x_11 : obj of | |
Bool.false → | |
let x_114 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_113 x_114 | |
Bool.true → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_113 x_115; | |
case x_10 : obj of | |
Bool.false → | |
let x_117 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_116 x_117 | |
Bool.true → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_116 x_118 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : obj of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : obj of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_20 : obj := reset[2] x_14; | |
let x_17 : obj := reuse x_20 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_17 | |
Bool.true → | |
let x_18 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_18 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : obj of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27; | |
case x_8 : obj of | |
Bool.false → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_29 x_30 | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : obj of | |
Bool.false → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_32 x_33 | |
Bool.true → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
jmp block_28 x_38 x_34 x_35 | |
[borrow] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : obj of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : obj of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : obj of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := reset[6] x_9; | |
let x_26 : u8 := Lean.Syntax.isMissing x_13; | |
case x_26 : obj of | |
Bool.false → | |
let x_27 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_27[6, 0] : u8 := x_15; | |
sset x_27[6, 1] : u8 := x_16; | |
sset x_27[6, 2] : u8 := x_19; | |
let x_28 : obj := Array.uset ◾ x_11 x_6 x_27 ◾; | |
let x_29 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_28; | |
ret x_29 | |
Bool.true → | |
let x_30 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_30[6, 0] : u8 := x_15; | |
sset x_30[6, 1] : u8 := x_16; | |
sset x_30[6, 2] : u8 := x_19; | |
let x_31 : obj := Array.uset ◾ x_11 x_6 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : obj of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 1; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : obj of | |
Bool.false → | |
let x_25 : u8 := 0; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 0; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : obj of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : obj of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : obj of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_14; | |
sset x_26[6, 1] : u8 := x_25; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 1; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_14; | |
sset x_30[6, 1] : u8 := x_29; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := reset[2] x_3; | |
let x_9 : obj := app x_2 x_6; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := reuse x_8 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := reset[2] x_3; | |
let x_9 : obj := app x_2 x_6; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
let x_12 : obj := reuse x_8 in ctor_1[List.cons] x_11 x_4; | |
let x_13 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_12; | |
ret x_13 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
let x_10 : obj := reuse x_6 in ctor_1[List.cons] x_9 x_2; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
let x_8 : obj := proj[1] x_4; | |
let x_9 : obj := proj[2] x_4; | |
let x_10 : obj := proj[3] x_4; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
let x_14 : obj := proj[5] x_4; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : obj of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : obj of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : obj of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : obj of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : obj of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : obj of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : obj of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : obj of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : obj of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : obj of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_17 : obj := reset[2] x_14; | |
let x_18 : obj := reuse x_17 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : obj of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27; | |
case x_8 : obj of | |
Bool.false → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_29 x_30 | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : obj of | |
Bool.false → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
jmp block_28 x_1 x_32 x_33 | |
Bool.true → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
jmp block_28 x_38 x_34 x_35 | |
[boxing] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : u8 of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : u8 of | |
Bool.false → | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
let x_13 : obj := proj[1] x_9; | |
let x_14 : obj := proj[2] x_9; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
let x_18 : obj := proj[5] x_9; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : u8 of | |
Bool.false → | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := reset[6] x_9; | |
let x_26 : u8 := Lean.Syntax.isMissing x_13; | |
case x_26 : u8 of | |
Bool.false → | |
let x_27 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_27[6, 0] : u8 := x_15; | |
sset x_27[6, 1] : u8 := x_16; | |
sset x_27[6, 2] : u8 := x_19; | |
let x_28 : obj := Array.uset ◾ x_11 x_6 x_27 ◾; | |
let x_29 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_28; | |
ret x_29 | |
Bool.true → | |
let x_30 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_30[6, 0] : u8 := x_15; | |
sset x_30[6, 1] : u8 := x_16; | |
sset x_30[6, 2] : u8 := x_19; | |
let x_31 : obj := Array.uset ◾ x_11 x_6 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 1; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 0; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 0; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
let x_11 : obj := proj[1] x_7; | |
let x_12 : obj := proj[2] x_7; | |
let x_13 : obj := proj[3] x_7; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
let x_16 : obj := proj[5] x_7; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_14; | |
sset x_26[6, 1] : u8 := x_25; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
let x_29 : u8 := 1; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_14; | |
sset x_30[6, 1] : u8 := x_29; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := reset[2] x_3; | |
let x_9 : obj := app x_2 x_6; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := reuse x_8 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : obj := reset[2] x_3; | |
let x_9 : obj := app x_2 x_6; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
let x_12 : obj := reuse x_8 in ctor_1[List.cons] x_11 x_4; | |
let x_13 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_12; | |
ret x_13 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
let x_10 : obj := reuse x_6 in ctor_1[List.cons] x_9 x_2; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
let x_8 : obj := proj[1] x_4; | |
let x_9 : obj := proj[2] x_4; | |
let x_10 : obj := proj[3] x_4; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
let x_14 : obj := proj[5] x_4; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : u8 of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : u8 of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : u8 of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : u8 of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : u8 of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
let x_10 : obj := proj[1] x_6; | |
let x_11 : obj := proj[2] x_6; | |
let x_12 : obj := proj[3] x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
let x_15 : usize := 0; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
case x_17 : u8 of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
let x_28 : obj := proj[1] x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
let x_31 : usize := 0; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
case x_33 : u8 of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
let x_44 : obj := proj[1] x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
let x_47 : usize := 0; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
case x_49 : u8 of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
let x_59 : obj := proj[1] x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
let x_62 : usize := 0; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
case x_64 : u8 of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq._boxed; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
let x_8 : usize := 0; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : u8 of | |
Bool.false → | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_17 : obj := reset[2] x_14; | |
let x_18 : obj := reuse x_17 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : u8 of | |
Bool.false → | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
let x_26 : obj := proj[1] x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
ret x_27; | |
case x_8 : u8 of | |
Bool.false → | |
let x_29 : obj := proj[0] x_10; | |
let x_30 : obj := proj[1] x_10; | |
let x_39 : u8 := unbox x_29; | |
jmp block_28 x_1 x_39 x_30 | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : u8 of | |
Bool.false → | |
let x_32 : obj := proj[0] x_10; | |
let x_33 : obj := proj[1] x_10; | |
let x_40 : u8 := unbox x_32; | |
jmp block_28 x_1 x_40 x_33 | |
Bool.true → | |
let x_34 : obj := proj[0] x_10; | |
let x_35 : obj := proj[1] x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
let x_41 : u8 := unbox x_34; | |
jmp block_28 x_38 x_41 x_35 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) : obj := | |
let x_4 : usize := unbox x_1; | |
let x_5 : usize := unbox x_2; | |
let x_6 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_4 x_5 x_3; | |
ret x_6 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) (x_6 : obj) (x_7 : obj) : obj := | |
let x_8 : usize := unbox x_5; | |
let x_9 : usize := unbox x_6; | |
let x_10 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_8 x_9 x_7; | |
ret x_10 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
let x_7 : usize := unbox x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_6 x_7 x_5; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
let x_7 : usize := unbox x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_6 x_7 x_5; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
let x_7 : usize := unbox x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_6 x_7 x_5; | |
ret x_8 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
let x_5 : usize := unbox x_2; | |
let x_6 : usize := unbox x_3; | |
let x_7 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_5 x_6 x_4; | |
ret x_7 | |
def Simps.applyProjectionRules._lambda_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_1 x_1 x_2 x_3 x_4 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_2 x_1 x_2 x_3 x_4 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules x_1 x_2 x_3 x_4 x_5; | |
ret x_6 | |
[rc] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : u8 of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
inc x_8; | |
dec x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
inc x_12; | |
let x_13 : obj := proj[1] x_9; | |
inc x_13; | |
let x_14 : obj := proj[2] x_9; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
inc x_17; | |
let x_18 : obj := proj[5] x_9; | |
inc x_18; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
dec x_14; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : u8 of | |
Bool.false → | |
dec x_18; | |
dec x_17; | |
dec x_13; | |
dec x_12; | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := reset[6] x_9; | |
let x_26 : u8 := Lean.Syntax.isMissing x_13; | |
case x_26 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
let x_27 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_27[6, 0] : u8 := x_15; | |
sset x_27[6, 1] : u8 := x_16; | |
sset x_27[6, 2] : u8 := x_19; | |
let x_28 : obj := Array.uset ◾ x_11 x_6 x_27 ◾; | |
let x_29 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_28; | |
ret x_29 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
let x_30 : obj := reuse x_25 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_30[6, 0] : u8 := x_15; | |
sset x_30[6, 1] : u8 := x_16; | |
sset x_30[6, 2] : u8 := x_19; | |
let x_31 : obj := Array.uset ◾ x_11 x_6 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
dec x_11; | |
let x_29 : u8 := 1; | |
inc x_2; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 0; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_25; | |
sset x_26[6, 1] : u8 := x_14; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
dec x_11; | |
let x_29 : u8 := 0; | |
inc x_2; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_29; | |
sset x_30[6, 1] : u8 := x_14; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : obj := reset[6] x_7; | |
let x_24 : u8 := Lean.Syntax.isMissing x_11; | |
case x_24 : u8 of | |
Bool.false → | |
let x_25 : u8 := 1; | |
let x_26 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_26[6, 0] : u8 := x_14; | |
sset x_26[6, 1] : u8 := x_25; | |
sset x_26[6, 2] : u8 := x_17; | |
let x_27 : obj := Array.uset ◾ x_9 x_4 x_26 ◾; | |
let x_28 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_27; | |
ret x_28 | |
Bool.true → | |
dec x_11; | |
let x_29 : u8 := 1; | |
inc x_2; | |
let x_30 : obj := reuse x_23 in ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_30[6, 0] : u8 := x_14; | |
sset x_30[6, 1] : u8 := x_29; | |
sset x_30[6, 2] : u8 := x_17; | |
let x_31 : obj := Array.uset ◾ x_9 x_4 x_30 ◾; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_31; | |
ret x_32 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
inc x_6; | |
let x_7 : obj := proj[1] x_3; | |
inc x_7; | |
let x_8 : obj := reset[2] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_6; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := reuse x_8 in ctor_1[List.cons] x_10 x_4; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_11; | |
ret x_12 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
inc x_6; | |
let x_7 : obj := proj[1] x_3; | |
inc x_7; | |
let x_8 : obj := reset[2] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_6; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
let x_12 : obj := reuse x_8 in ctor_1[List.cons] x_11 x_4; | |
let x_13 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_12; | |
ret x_13 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
inc x_4; | |
let x_5 : obj := proj[1] x_1; | |
inc x_5; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
let x_10 : obj := reuse x_6 in ctor_1[List.cons] x_9 x_2; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_10; | |
ret x_11 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
inc x_4; | |
let x_5 : obj := proj[1] x_1; | |
inc x_5; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
inc x_7; | |
let x_8 : obj := proj[1] x_4; | |
inc x_8; | |
let x_9 : obj := proj[2] x_4; | |
inc x_9; | |
let x_10 : obj := proj[3] x_4; | |
inc x_10; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
inc x_13; | |
let x_14 : obj := proj[5] x_4; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
dec x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
dec x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : u8 of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
dec x_39; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
dec x_60; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
inc x_72; | |
dec x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : u8 of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
dec x_82; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
dec x_102; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : u8 of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : u8 of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : u8 of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
inc x_9; | |
let x_10 : obj := proj[1] x_6; | |
inc x_10; | |
let x_11 : obj := proj[2] x_6; | |
inc x_11; | |
let x_12 : obj := proj[3] x_6; | |
inc x_12; | |
dec x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
dec x_13; | |
let x_15 : usize := 0; | |
inc x_4; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
dec x_16; | |
case x_17 : u8 of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
dec x_9; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
inc x_27; | |
let x_28 : obj := proj[1] x_6; | |
inc x_28; | |
dec x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
dec x_29; | |
let x_31 : usize := 0; | |
inc x_4; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
dec x_32; | |
case x_33 : u8 of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_28; | |
inc x_27; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
dec x_27; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
inc x_43; | |
let x_44 : obj := proj[1] x_6; | |
inc x_44; | |
dec x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
dec x_45; | |
let x_47 : usize := 0; | |
inc x_4; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
dec x_48; | |
case x_49 : u8 of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_44; | |
inc x_43; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
dec x_43; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
inc x_58; | |
let x_59 : obj := proj[1] x_6; | |
inc x_59; | |
dec x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
dec x_60; | |
let x_62 : usize := 0; | |
inc x_4; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
dec x_63; | |
case x_64 : u8 of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
inc x_59; | |
inc x_58; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
dec x_58; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq._boxed; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_8 : usize := 0; | |
inc x_1; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : u8 of | |
Bool.false → | |
dec x_1; | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : obj := proj[0] x_14; | |
inc x_15; | |
let x_16 : obj := proj[1] x_14; | |
inc x_16; | |
let x_17 : obj := reset[2] x_14; | |
let x_18 : obj := reuse x_17 in ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
inc x_9; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : u8 of | |
Bool.false → | |
dec x_9; | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
inc x_11; | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
dec x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
inc x_25; | |
let x_26 : obj := proj[1] x_24; | |
inc x_26; | |
dec x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
dec x_25; | |
ret x_27; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_29 : obj := proj[0] x_10; | |
inc x_29; | |
let x_30 : obj := proj[1] x_10; | |
inc x_30; | |
dec x_10; | |
let x_39 : u8 := unbox x_29; | |
dec x_29; | |
jmp block_28 x_1 x_39 x_30 | |
Bool.true → | |
let x_31 : u8 := Nat.decLe x_6 x_6; | |
case x_31 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_32 : obj := proj[0] x_10; | |
inc x_32; | |
let x_33 : obj := proj[1] x_10; | |
inc x_33; | |
dec x_10; | |
let x_40 : u8 := unbox x_32; | |
dec x_32; | |
jmp block_28 x_1 x_40 x_33 | |
Bool.true → | |
let x_34 : obj := proj[0] x_10; | |
inc x_34; | |
let x_35 : obj := proj[1] x_10; | |
inc x_35; | |
dec x_10; | |
let x_36 : usize := 0; | |
let x_37 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_38 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_36 x_37 x_1; | |
dec x_2; | |
let x_41 : u8 := unbox x_34; | |
dec x_34; | |
jmp block_28 x_38 x_41 x_35 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) : obj := | |
let x_4 : usize := unbox x_1; | |
dec x_1; | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_4 x_5 x_3; | |
ret x_6 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) (x_6 : obj) (x_7 : obj) : obj := | |
let x_8 : usize := unbox x_5; | |
dec x_5; | |
let x_9 : usize := unbox x_6; | |
dec x_6; | |
let x_10 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_8 x_9 x_7; | |
dec x_1; | |
ret x_10 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_5 x_6 x_4; | |
dec x_1; | |
ret x_7 | |
def Simps.applyProjectionRules._lambda_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_1 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_2 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
ret x_6 | |
[expand_reset_reuse] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : u8 of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
inc x_8; | |
dec x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
inc x_12; | |
let x_13 : obj := proj[1] x_9; | |
inc x_13; | |
let x_14 : obj := proj[2] x_9; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
inc x_17; | |
let x_18 : obj := proj[5] x_9; | |
inc x_18; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
dec x_14; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : u8 of | |
Bool.false → | |
dec x_18; | |
dec x_17; | |
dec x_13; | |
dec x_12; | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := isShared x_9; | |
case x_25 : u8 of | |
Bool.false → | |
let x_26 : obj := proj[5] x_9; | |
dec x_26; | |
let x_27 : obj := proj[4] x_9; | |
dec x_27; | |
let x_28 : obj := proj[3] x_9; | |
dec x_28; | |
let x_29 : obj := proj[2] x_9; | |
dec x_29; | |
let x_30 : obj := proj[1] x_9; | |
dec x_30; | |
let x_31 : obj := proj[0] x_9; | |
dec x_31; | |
let x_32 : u8 := Lean.Syntax.isMissing x_13; | |
case x_32 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
let x_33 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_34 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_33; | |
ret x_34 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
set x_9[1] := x_2; | |
let x_35 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_9; | |
let x_37 : u8 := Lean.Syntax.isMissing x_13; | |
case x_37 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_38[6, 0] : u8 := x_15; | |
sset x_38[6, 1] : u8 := x_16; | |
sset x_38[6, 2] : u8 := x_19; | |
let x_39 : obj := Array.uset ◾ x_11 x_6 x_38 ◾; | |
let x_40 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_39; | |
ret x_40 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
let x_41 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_41[6, 0] : u8 := x_15; | |
sset x_41[6, 1] : u8 := x_16; | |
sset x_41[6, 2] : u8 := x_19; | |
let x_42 : obj := Array.uset ◾ x_11 x_6 x_41 ◾; | |
let x_43 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_42; | |
ret x_43 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 0; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 0; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 0; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 0; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 1] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 1] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_14; | |
sset x_39[6, 1] : u8 := x_38; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_14; | |
sset x_43[6, 1] : u8 := x_42; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : u8 := isShared x_3; | |
case x_8 : u8 of | |
Bool.false → | |
inc x_2; | |
let x_9 : obj := app x_2 x_6; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
set x_3[1] := x_4; | |
set x_3[0] := x_10; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_3; | |
ret x_11 | |
Bool.true → | |
inc x_7; | |
inc x_6; | |
dec x_3; | |
inc x_2; | |
let x_12 : obj := app x_2 x_6; | |
inc x_1; | |
let x_13 : obj := app x_1 x_12; | |
let x_14 : obj := ctor_1[List.cons] x_13 x_4; | |
let x_15 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_7 x_14; | |
ret x_15 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : obj := proj[0] x_3; | |
let x_7 : obj := proj[1] x_3; | |
let x_8 : u8 := isShared x_3; | |
case x_8 : u8 of | |
Bool.false → | |
inc x_2; | |
let x_9 : obj := app x_2 x_6; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
set x_3[1] := x_4; | |
set x_3[0] := x_11; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_3; | |
ret x_12 | |
Bool.true → | |
inc x_7; | |
inc x_6; | |
dec x_3; | |
inc x_2; | |
let x_13 : obj := app x_2 x_6; | |
inc x_1; | |
let x_14 : obj := app x_1 x_13; | |
let x_15 : obj := ctor_0[Lean.MessageData.ofFormat] x_14; | |
let x_16 : obj := ctor_1[List.cons] x_15 x_4; | |
let x_17 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_7 x_16; | |
ret x_17 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
let x_5 : obj := proj[1] x_1; | |
let x_6 : u8 := isShared x_1; | |
case x_6 : u8 of | |
Bool.false → | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
set x_1[1] := x_2; | |
set x_1[0] := x_9; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_1; | |
ret x_10 | |
Bool.true → | |
inc x_5; | |
inc x_4; | |
dec x_1; | |
let x_11 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_4; | |
let x_12 : obj := ctor_3[Std.Format.text] x_11; | |
let x_13 : obj := ctor_0[Lean.MessageData.ofFormat] x_12; | |
let x_14 : obj := ctor_1[List.cons] x_13 x_2; | |
let x_15 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_5 x_14; | |
ret x_15 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
inc x_4; | |
let x_5 : obj := proj[1] x_1; | |
inc x_5; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
inc x_7; | |
let x_8 : obj := proj[1] x_4; | |
inc x_8; | |
let x_9 : obj := proj[2] x_4; | |
inc x_9; | |
let x_10 : obj := proj[3] x_4; | |
inc x_10; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
inc x_13; | |
let x_14 : obj := proj[5] x_4; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
dec x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
dec x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : u8 of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
dec x_39; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
dec x_60; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
inc x_72; | |
dec x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : u8 of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
dec x_82; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
dec x_102; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : u8 of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : u8 of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : u8 of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
inc x_9; | |
let x_10 : obj := proj[1] x_6; | |
inc x_10; | |
let x_11 : obj := proj[2] x_6; | |
inc x_11; | |
let x_12 : obj := proj[3] x_6; | |
inc x_12; | |
dec x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
dec x_13; | |
let x_15 : usize := 0; | |
inc x_4; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
dec x_16; | |
case x_17 : u8 of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
dec x_9; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
inc x_27; | |
let x_28 : obj := proj[1] x_6; | |
inc x_28; | |
dec x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
dec x_29; | |
let x_31 : usize := 0; | |
inc x_4; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
dec x_32; | |
case x_33 : u8 of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_28; | |
inc x_27; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
dec x_27; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
inc x_43; | |
let x_44 : obj := proj[1] x_6; | |
inc x_44; | |
dec x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
dec x_45; | |
let x_47 : usize := 0; | |
inc x_4; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
dec x_48; | |
case x_49 : u8 of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_44; | |
inc x_43; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
dec x_43; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
inc x_58; | |
let x_59 : obj := proj[1] x_6; | |
inc x_59; | |
dec x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
dec x_60; | |
let x_62 : usize := 0; | |
inc x_4; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
dec x_63; | |
case x_64 : u8 of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
inc x_59; | |
inc x_58; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
dec x_58; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq._boxed; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_8 : usize := 0; | |
inc x_1; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : u8 of | |
Bool.false → | |
dec x_1; | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : obj := proj[0] x_14; | |
let x_16 : obj := proj[1] x_14; | |
let x_17 : u8 := isShared x_14; | |
case x_17 : u8 of | |
Bool.false → | |
ret x_14 | |
Bool.true → | |
inc x_16; | |
inc x_15; | |
dec x_14; | |
let x_18 : obj := ctor_1[EStateM.Result.error] x_15 x_16; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
inc x_9; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : u8 of | |
Bool.false → | |
dec x_9; | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
inc x_11; | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
dec x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
inc x_25; | |
let x_26 : obj := proj[1] x_24; | |
inc x_26; | |
dec x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
dec x_25; | |
ret x_27; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_29 : obj := proj[0] x_10; | |
inc x_29; | |
let x_30 : obj := proj[1] x_10; | |
inc x_30; | |
dec x_10; | |
let x_31 : u8 := unbox x_29; | |
dec x_29; | |
jmp block_28 x_1 x_31 x_30 | |
Bool.true → | |
let x_32 : u8 := Nat.decLe x_6 x_6; | |
case x_32 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_33 : obj := proj[0] x_10; | |
inc x_33; | |
let x_34 : obj := proj[1] x_10; | |
inc x_34; | |
dec x_10; | |
let x_35 : u8 := unbox x_33; | |
dec x_33; | |
jmp block_28 x_1 x_35 x_34 | |
Bool.true → | |
let x_36 : obj := proj[0] x_10; | |
inc x_36; | |
let x_37 : obj := proj[1] x_10; | |
inc x_37; | |
dec x_10; | |
let x_38 : usize := 0; | |
let x_39 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_38 x_39 x_1; | |
dec x_2; | |
let x_41 : u8 := unbox x_36; | |
dec x_36; | |
jmp block_28 x_40 x_41 x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) : obj := | |
let x_4 : usize := unbox x_1; | |
dec x_1; | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_4 x_5 x_3; | |
ret x_6 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) (x_6 : obj) (x_7 : obj) : obj := | |
let x_8 : usize := unbox x_5; | |
dec x_5; | |
let x_9 : usize := unbox x_6; | |
dec x_6; | |
let x_10 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_8 x_9 x_7; | |
dec x_1; | |
ret x_10 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_5 x_6 x_4; | |
dec x_1; | |
ret x_7 | |
def Simps.applyProjectionRules._lambda_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_1 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_2 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
ret x_6 | |
[push_proj] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : u8 of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
inc x_8; | |
dec x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
inc x_12; | |
let x_13 : obj := proj[1] x_9; | |
inc x_13; | |
let x_14 : obj := proj[2] x_9; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
inc x_17; | |
let x_18 : obj := proj[5] x_9; | |
inc x_18; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
dec x_14; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : u8 of | |
Bool.false → | |
dec x_18; | |
dec x_17; | |
dec x_13; | |
dec x_12; | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := isShared x_9; | |
case x_25 : u8 of | |
Bool.false → | |
let x_26 : obj := proj[5] x_9; | |
dec x_26; | |
let x_27 : obj := proj[4] x_9; | |
dec x_27; | |
let x_28 : obj := proj[3] x_9; | |
dec x_28; | |
let x_29 : obj := proj[2] x_9; | |
dec x_29; | |
let x_30 : obj := proj[1] x_9; | |
dec x_30; | |
let x_31 : obj := proj[0] x_9; | |
dec x_31; | |
let x_32 : u8 := Lean.Syntax.isMissing x_13; | |
case x_32 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
let x_33 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_34 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_33; | |
ret x_34 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
set x_9[1] := x_2; | |
let x_35 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_9; | |
let x_37 : u8 := Lean.Syntax.isMissing x_13; | |
case x_37 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_38[6, 0] : u8 := x_15; | |
sset x_38[6, 1] : u8 := x_16; | |
sset x_38[6, 2] : u8 := x_19; | |
let x_39 : obj := Array.uset ◾ x_11 x_6 x_38 ◾; | |
let x_40 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_39; | |
ret x_40 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
let x_41 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_41[6, 0] : u8 := x_15; | |
sset x_41[6, 1] : u8 := x_16; | |
sset x_41[6, 2] : u8 := x_19; | |
let x_42 : obj := Array.uset ◾ x_11 x_6 x_41 ◾; | |
let x_43 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_42; | |
ret x_43 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 0; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 0; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 0; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 0; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 1] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 1] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_14; | |
sset x_39[6, 1] : u8 := x_38; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_14; | |
sset x_43[6, 1] : u8 := x_42; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : u8 := isShared x_3; | |
case x_6 : u8 of | |
Bool.false → | |
let x_7 : obj := proj[0] x_3; | |
let x_8 : obj := proj[1] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_7; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
set x_3[1] := x_4; | |
set x_3[0] := x_10; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_8 x_3; | |
ret x_11 | |
Bool.true → | |
let x_12 : obj := proj[0] x_3; | |
let x_13 : obj := proj[1] x_3; | |
inc x_13; | |
inc x_12; | |
dec x_3; | |
inc x_2; | |
let x_14 : obj := app x_2 x_12; | |
inc x_1; | |
let x_15 : obj := app x_1 x_14; | |
let x_16 : obj := ctor_1[List.cons] x_15 x_4; | |
let x_17 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_13 x_16; | |
ret x_17 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : u8 := isShared x_3; | |
case x_6 : u8 of | |
Bool.false → | |
let x_7 : obj := proj[0] x_3; | |
let x_8 : obj := proj[1] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_7; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
set x_3[1] := x_4; | |
set x_3[0] := x_11; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_8 x_3; | |
ret x_12 | |
Bool.true → | |
let x_13 : obj := proj[0] x_3; | |
let x_14 : obj := proj[1] x_3; | |
inc x_14; | |
inc x_13; | |
dec x_3; | |
inc x_2; | |
let x_15 : obj := app x_2 x_13; | |
inc x_1; | |
let x_16 : obj := app x_1 x_15; | |
let x_17 : obj := ctor_0[Lean.MessageData.ofFormat] x_16; | |
let x_18 : obj := ctor_1[List.cons] x_17 x_4; | |
let x_19 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_14 x_18; | |
ret x_19 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : u8 := isShared x_1; | |
case x_4 : u8 of | |
Bool.false → | |
let x_5 : obj := proj[0] x_1; | |
let x_6 : obj := proj[1] x_1; | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_5; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
set x_1[1] := x_2; | |
set x_1[0] := x_9; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_6 x_1; | |
ret x_10 | |
Bool.true → | |
let x_11 : obj := proj[0] x_1; | |
let x_12 : obj := proj[1] x_1; | |
inc x_12; | |
inc x_11; | |
dec x_1; | |
let x_13 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_11; | |
let x_14 : obj := ctor_3[Std.Format.text] x_13; | |
let x_15 : obj := ctor_0[Lean.MessageData.ofFormat] x_14; | |
let x_16 : obj := ctor_1[List.cons] x_15 x_2; | |
let x_17 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_12 x_16; | |
ret x_17 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
inc x_4; | |
let x_5 : obj := proj[1] x_1; | |
inc x_5; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
inc x_7; | |
let x_8 : obj := proj[1] x_4; | |
inc x_8; | |
let x_9 : obj := proj[2] x_4; | |
inc x_9; | |
let x_10 : obj := proj[3] x_4; | |
inc x_10; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
inc x_13; | |
let x_14 : obj := proj[5] x_4; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
dec x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
dec x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : u8 of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
dec x_39; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
dec x_60; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
inc x_72; | |
dec x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : u8 of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
dec x_82; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
dec x_102; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : u8 of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : u8 of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : u8 of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
inc x_9; | |
let x_10 : obj := proj[1] x_6; | |
inc x_10; | |
let x_11 : obj := proj[2] x_6; | |
inc x_11; | |
let x_12 : obj := proj[3] x_6; | |
inc x_12; | |
dec x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
dec x_13; | |
let x_15 : usize := 0; | |
inc x_4; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
dec x_16; | |
case x_17 : u8 of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
dec x_9; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
inc x_27; | |
let x_28 : obj := proj[1] x_6; | |
inc x_28; | |
dec x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
dec x_29; | |
let x_31 : usize := 0; | |
inc x_4; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
dec x_32; | |
case x_33 : u8 of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_28; | |
inc x_27; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
dec x_27; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
inc x_43; | |
let x_44 : obj := proj[1] x_6; | |
inc x_44; | |
dec x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
dec x_45; | |
let x_47 : usize := 0; | |
inc x_4; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
dec x_48; | |
case x_49 : u8 of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_44; | |
inc x_43; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
dec x_43; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
inc x_58; | |
let x_59 : obj := proj[1] x_6; | |
inc x_59; | |
dec x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
dec x_60; | |
let x_62 : usize := 0; | |
inc x_4; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
dec x_63; | |
case x_64 : u8 of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
inc x_59; | |
inc x_58; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
dec x_58; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq._boxed; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_8 : usize := 0; | |
inc x_1; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : u8 of | |
Bool.false → | |
dec x_1; | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : u8 := isShared x_14; | |
case x_15 : u8 of | |
Bool.false → | |
ret x_14 | |
Bool.true → | |
let x_16 : obj := proj[0] x_14; | |
let x_17 : obj := proj[1] x_14; | |
inc x_17; | |
inc x_16; | |
dec x_14; | |
let x_18 : obj := ctor_1[EStateM.Result.error] x_16 x_17; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
inc x_9; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : u8 of | |
Bool.false → | |
dec x_9; | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
inc x_11; | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
dec x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
inc x_25; | |
let x_26 : obj := proj[1] x_24; | |
inc x_26; | |
dec x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
dec x_25; | |
ret x_27; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_29 : obj := proj[0] x_10; | |
inc x_29; | |
let x_30 : obj := proj[1] x_10; | |
inc x_30; | |
dec x_10; | |
let x_31 : u8 := unbox x_29; | |
dec x_29; | |
jmp block_28 x_1 x_31 x_30 | |
Bool.true → | |
let x_32 : u8 := Nat.decLe x_6 x_6; | |
case x_32 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_33 : obj := proj[0] x_10; | |
inc x_33; | |
let x_34 : obj := proj[1] x_10; | |
inc x_34; | |
dec x_10; | |
let x_35 : u8 := unbox x_33; | |
dec x_33; | |
jmp block_28 x_1 x_35 x_34 | |
Bool.true → | |
let x_36 : obj := proj[0] x_10; | |
inc x_36; | |
let x_37 : obj := proj[1] x_10; | |
inc x_37; | |
dec x_10; | |
let x_38 : usize := 0; | |
let x_39 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_38 x_39 x_1; | |
dec x_2; | |
let x_41 : u8 := unbox x_36; | |
dec x_36; | |
jmp block_28 x_40 x_41 x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) : obj := | |
let x_4 : usize := unbox x_1; | |
dec x_1; | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_4 x_5 x_3; | |
ret x_6 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) (x_6 : obj) (x_7 : obj) : obj := | |
let x_8 : usize := unbox x_5; | |
dec x_5; | |
let x_9 : usize := unbox x_6; | |
dec x_6; | |
let x_10 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_8 x_9 x_7; | |
dec x_1; | |
ret x_10 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_5 x_6 x_4; | |
dec x_1; | |
ret x_7 | |
def Simps.applyProjectionRules._lambda_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_1 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_2 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
ret x_6 | |
[result] | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 (x_1 : usize) (x_2 : usize) (x_3 : obj) : obj := | |
let x_4 : u8 := USize.decLt x_2 x_1; | |
case x_4 : u8 of | |
Bool.false → | |
ret x_3 | |
Bool.true → | |
let x_5 : obj := Array.uget ◾ x_3 x_2 ◾; | |
let x_6 : obj := 0; | |
let x_7 : obj := Array.uset ◾ x_3 x_2 x_6 ◾; | |
let x_8 : obj := proj[2] x_5; | |
inc x_8; | |
dec x_5; | |
let x_9 : usize := 1; | |
let x_10 : usize := USize.add x_2 x_9; | |
let x_11 : obj := Array.uset ◾ x_7 x_2 x_8 ◾; | |
let x_12 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_1 x_10 x_11; | |
ret x_12 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 (x_1 : @& obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := | |
let x_8 : u8 := USize.decLt x_6 x_5; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_7 | |
Bool.true → | |
let x_9 : obj := Array.uget ◾ x_7 x_6 ◾; | |
let x_10 : obj := 0; | |
let x_11 : obj := Array.uset ◾ x_7 x_6 x_10 ◾; | |
let x_12 : obj := proj[0] x_9; | |
inc x_12; | |
let x_13 : obj := proj[1] x_9; | |
inc x_13; | |
let x_14 : obj := proj[2] x_9; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 0] x_9; | |
let x_16 : u8 := sproj[6, 1] x_9; | |
let x_17 : obj := proj[4] x_9; | |
inc x_17; | |
let x_18 : obj := proj[5] x_9; | |
inc x_18; | |
let x_19 : u8 := sproj[6, 2] x_9; | |
let x_20 : u8 := Lean.Name.beq x_14 x_1; | |
dec x_14; | |
let x_21 : usize := 1; | |
let x_22 : usize := USize.add x_6 x_21; | |
case x_20 : u8 of | |
Bool.false → | |
dec x_18; | |
dec x_17; | |
dec x_13; | |
dec x_12; | |
let x_23 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_24 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : u8 := isShared x_9; | |
case x_25 : u8 of | |
Bool.false → | |
let x_26 : obj := proj[5] x_9; | |
dec x_26; | |
let x_27 : obj := proj[4] x_9; | |
dec x_27; | |
let x_28 : obj := proj[3] x_9; | |
dec x_28; | |
let x_29 : obj := proj[2] x_9; | |
dec x_29; | |
let x_30 : obj := proj[1] x_9; | |
dec x_30; | |
let x_31 : obj := proj[0] x_9; | |
dec x_31; | |
let x_32 : u8 := Lean.Syntax.isMissing x_13; | |
case x_32 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
let x_33 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_34 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_33; | |
ret x_34 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
set x_9[3] := x_4; | |
set x_9[2] := x_3; | |
set x_9[1] := x_2; | |
let x_35 : obj := Array.uset ◾ x_11 x_6 x_9 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_9; | |
let x_37 : u8 := Lean.Syntax.isMissing x_13; | |
case x_37 : u8 of | |
Bool.false → | |
inc x_4; | |
inc x_3; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_13 x_3 x_4 x_17 x_18; | |
sset x_38[6, 0] : u8 := x_15; | |
sset x_38[6, 1] : u8 := x_16; | |
sset x_38[6, 2] : u8 := x_19; | |
let x_39 : obj := Array.uset ◾ x_11 x_6 x_38 ◾; | |
let x_40 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_39; | |
ret x_40 | |
Bool.true → | |
dec x_13; | |
inc x_4; | |
inc x_3; | |
inc x_2; | |
let x_41 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_12 x_2 x_3 x_4 x_17 x_18; | |
sset x_41[6, 0] : u8 := x_15; | |
sset x_41[6, 1] : u8 := x_16; | |
sset x_41[6, 2] : u8 := x_19; | |
let x_42 : obj := Array.uset ◾ x_11 x_6 x_41 ◾; | |
let x_43 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_5 x_22 x_42; | |
ret x_43 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 1] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 0; | |
sset x_7[6, 0] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 0; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 0] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 0; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_38; | |
sset x_39[6, 1] : u8 := x_14; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 0; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_42; | |
sset x_43[6, 1] : u8 := x_14; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 (x_1 : @& obj) (x_2 : obj) (x_3 : usize) (x_4 : usize) (x_5 : obj) : obj := | |
let x_6 : u8 := USize.decLt x_4 x_3; | |
case x_6 : u8 of | |
Bool.false → | |
dec x_2; | |
ret x_5 | |
Bool.true → | |
let x_7 : obj := Array.uget ◾ x_5 x_4 ◾; | |
let x_8 : obj := 0; | |
let x_9 : obj := Array.uset ◾ x_5 x_4 x_8 ◾; | |
let x_10 : obj := proj[0] x_7; | |
inc x_10; | |
let x_11 : obj := proj[1] x_7; | |
inc x_11; | |
let x_12 : obj := proj[2] x_7; | |
inc x_12; | |
let x_13 : obj := proj[3] x_7; | |
inc x_13; | |
let x_14 : u8 := sproj[6, 0] x_7; | |
let x_15 : obj := proj[4] x_7; | |
inc x_15; | |
let x_16 : obj := proj[5] x_7; | |
inc x_16; | |
let x_17 : u8 := sproj[6, 2] x_7; | |
let x_18 : u8 := Lean.Name.beq x_12 x_1; | |
let x_19 : usize := 1; | |
let x_20 : usize := USize.add x_4 x_19; | |
case x_18 : u8 of | |
Bool.false → | |
dec x_16; | |
dec x_15; | |
dec x_13; | |
dec x_12; | |
dec x_11; | |
dec x_10; | |
let x_21 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_22 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_21; | |
ret x_22 | |
Bool.true → | |
let x_23 : u8 := isShared x_7; | |
case x_23 : u8 of | |
Bool.false → | |
let x_24 : obj := proj[5] x_7; | |
dec x_24; | |
let x_25 : obj := proj[4] x_7; | |
dec x_25; | |
let x_26 : obj := proj[3] x_7; | |
dec x_26; | |
let x_27 : obj := proj[2] x_7; | |
dec x_27; | |
let x_28 : obj := proj[1] x_7; | |
dec x_28; | |
let x_29 : obj := proj[0] x_7; | |
dec x_29; | |
let x_30 : u8 := Lean.Syntax.isMissing x_11; | |
case x_30 : u8 of | |
Bool.false → | |
let x_31 : u8 := 1; | |
sset x_7[6, 1] : u8 := x_31; | |
let x_32 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_33 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_32; | |
ret x_33 | |
Bool.true → | |
dec x_11; | |
let x_34 : u8 := 1; | |
inc x_2; | |
set x_7[1] := x_2; | |
sset x_7[6, 1] : u8 := x_34; | |
let x_35 : obj := Array.uset ◾ x_9 x_4 x_7 ◾; | |
let x_36 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_35; | |
ret x_36 | |
Bool.true → | |
dec x_7; | |
let x_37 : u8 := Lean.Syntax.isMissing x_11; | |
case x_37 : u8 of | |
Bool.false → | |
let x_38 : u8 := 1; | |
let x_39 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_11 x_12 x_13 x_15 x_16; | |
sset x_39[6, 0] : u8 := x_14; | |
sset x_39[6, 1] : u8 := x_38; | |
sset x_39[6, 2] : u8 := x_17; | |
let x_40 : obj := Array.uset ◾ x_9 x_4 x_39 ◾; | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_40; | |
ret x_41 | |
Bool.true → | |
dec x_11; | |
let x_42 : u8 := 1; | |
inc x_2; | |
let x_43 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_10 x_2 x_12 x_13 x_15 x_16; | |
sset x_43[6, 0] : u8 := x_14; | |
sset x_43[6, 1] : u8 := x_42; | |
sset x_43[6, 2] : u8 := x_17; | |
let x_44 : obj := Array.uset ◾ x_9 x_4 x_43 ◾; | |
let x_45 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_3 x_20 x_44; | |
ret x_45 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : u8 := isShared x_3; | |
case x_6 : u8 of | |
Bool.false → | |
let x_7 : obj := proj[0] x_3; | |
let x_8 : obj := proj[1] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_7; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
set x_3[1] := x_4; | |
set x_3[0] := x_10; | |
let x_11 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_8 x_3; | |
ret x_11 | |
Bool.true → | |
let x_12 : obj := proj[0] x_3; | |
let x_13 : obj := proj[1] x_3; | |
inc x_13; | |
inc x_12; | |
dec x_3; | |
inc x_2; | |
let x_14 : obj := app x_2 x_12; | |
inc x_1; | |
let x_15 : obj := app x_1 x_14; | |
let x_16 : obj := ctor_1[List.cons] x_15 x_4; | |
let x_17 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6 x_1 x_2 x_13 x_16; | |
ret x_17 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
case x_3 : obj of | |
List.nil → | |
dec x_2; | |
dec x_1; | |
let x_5 : obj := List.reverse._rarg x_4; | |
ret x_5 | |
List.cons → | |
let x_6 : u8 := isShared x_3; | |
case x_6 : u8 of | |
Bool.false → | |
let x_7 : obj := proj[0] x_3; | |
let x_8 : obj := proj[1] x_3; | |
inc x_2; | |
let x_9 : obj := app x_2 x_7; | |
inc x_1; | |
let x_10 : obj := app x_1 x_9; | |
let x_11 : obj := ctor_0[Lean.MessageData.ofFormat] x_10; | |
set x_3[1] := x_4; | |
set x_3[0] := x_11; | |
let x_12 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_8 x_3; | |
ret x_12 | |
Bool.true → | |
let x_13 : obj := proj[0] x_3; | |
let x_14 : obj := proj[1] x_3; | |
inc x_14; | |
inc x_13; | |
dec x_3; | |
inc x_2; | |
let x_15 : obj := app x_2 x_13; | |
inc x_1; | |
let x_16 : obj := app x_1 x_15; | |
let x_17 : obj := ctor_0[Lean.MessageData.ofFormat] x_16; | |
let x_18 : obj := ctor_1[List.cons] x_17 x_4; | |
let x_19 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7 x_1 x_2 x_14 x_18; | |
ret x_19 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : u8 := isShared x_1; | |
case x_4 : u8 of | |
Bool.false → | |
let x_5 : obj := proj[0] x_1; | |
let x_6 : obj := proj[1] x_1; | |
let x_7 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_5; | |
let x_8 : obj := ctor_3[Std.Format.text] x_7; | |
let x_9 : obj := ctor_0[Lean.MessageData.ofFormat] x_8; | |
set x_1[1] := x_2; | |
set x_1[0] := x_9; | |
let x_10 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_6 x_1; | |
ret x_10 | |
Bool.true → | |
let x_11 : obj := proj[0] x_1; | |
let x_12 : obj := proj[1] x_1; | |
inc x_12; | |
inc x_11; | |
dec x_1; | |
let x_13 : obj := _private.Init.Data.Repr.0.Nat.reprFast x_11; | |
let x_14 : obj := ctor_3[Std.Format.text] x_13; | |
let x_15 : obj := ctor_0[Lean.MessageData.ofFormat] x_14; | |
let x_16 : obj := ctor_1[List.cons] x_15 x_2; | |
let x_17 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_12 x_16; | |
ret x_17 | |
def List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 (x_1 : obj) (x_2 : obj) : obj := | |
case x_1 : obj of | |
List.nil → | |
let x_3 : obj := List.reverse._rarg x_2; | |
ret x_3 | |
List.cons → | |
let x_4 : obj := proj[0] x_1; | |
inc x_4; | |
let x_5 : obj := proj[1] x_1; | |
inc x_5; | |
let x_6 : obj := reset[2] x_1; | |
let x_7 : obj := proj[0] x_4; | |
inc x_7; | |
let x_8 : obj := proj[1] x_4; | |
inc x_8; | |
let x_9 : obj := proj[2] x_4; | |
inc x_9; | |
let x_10 : obj := proj[3] x_4; | |
inc x_10; | |
let x_11 : u8 := sproj[6, 0] x_4; | |
let x_12 : u8 := sproj[6, 1] x_4; | |
let x_13 : obj := proj[4] x_4; | |
inc x_13; | |
let x_14 : obj := proj[5] x_4; | |
inc x_14; | |
let x_15 : u8 := sproj[6, 2] x_4; | |
dec x_4; | |
let x_16 : obj := Lean.MessageData.ofName x_7; | |
let x_17 : obj := Lean.MessageData.ofSyntax x_8; | |
let x_18 : obj := Lean.MessageData.ofName x_9; | |
let x_19 : obj := Lean.MessageData.ofSyntax x_10; | |
let x_20 : obj := Array.toList ◾ x_14; | |
let x_21 : obj := ctor_0[List.nil]; | |
let x_22 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_6._at.Simps.applyProjectionRules._spec_7._at.Simps.applyProjectionRules._spec_8 x_20 x_21; | |
let x_23 : obj := Lean.MessageData.ofList x_22; | |
dec x_22; | |
block_117 (x_24 : obj) := | |
let x_25 : obj := ctor_3[Std.Format.text] x_24; | |
let x_26 : obj := ctor_0[Lean.MessageData.ofFormat] x_25; | |
block_114 (x_27 : obj) := | |
let x_28 : obj := ctor_3[Std.Format.text] x_27; | |
let x_29 : obj := ctor_0[Lean.MessageData.ofFormat] x_28; | |
case x_13 : obj of | |
Option.none → | |
case x_15 : u8 of | |
Bool.false → | |
let x_30 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_31 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_30; | |
let x_32 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_33 : obj := ctor_1[List.cons] x_32 x_31; | |
let x_34 : obj := ctor_1[List.cons] x_29 x_33; | |
let x_35 : obj := ctor_1[List.cons] x_26 x_34; | |
let x_36 : obj := ctor_1[List.cons] x_19 x_35; | |
let x_37 : obj := ctor_1[List.cons] x_18 x_36; | |
let x_38 : obj := ctor_1[List.cons] x_17 x_37; | |
let x_39 : obj := ctor_1[List.cons] x_16 x_38; | |
let x_40 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_41 : obj := Lean.MessageData.joinSep x_39 x_40; | |
dec x_39; | |
let x_42 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_43 : obj := ctor_7[Lean.MessageData.compose] x_42 x_41; | |
let x_44 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_45 : obj := ctor_7[Lean.MessageData.compose] x_43 x_44; | |
let x_46 : obj := 1; | |
let x_47 : obj := ctor_5[Lean.MessageData.nest] x_46 x_45; | |
let x_48 : obj := ctor_6[Lean.MessageData.group] x_47; | |
let x_49 : obj := ctor_1[List.cons] x_48 x_2; | |
let x_50 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_49; | |
ret x_50 | |
Bool.true → | |
let x_51 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_52 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_51; | |
let x_53 : obj := Simps.instToMessageDataParsedProjectionData._closed_3; | |
let x_54 : obj := ctor_1[List.cons] x_53 x_52; | |
let x_55 : obj := ctor_1[List.cons] x_29 x_54; | |
let x_56 : obj := ctor_1[List.cons] x_26 x_55; | |
let x_57 : obj := ctor_1[List.cons] x_19 x_56; | |
let x_58 : obj := ctor_1[List.cons] x_18 x_57; | |
let x_59 : obj := ctor_1[List.cons] x_17 x_58; | |
let x_60 : obj := ctor_1[List.cons] x_16 x_59; | |
let x_61 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_62 : obj := Lean.MessageData.joinSep x_60 x_61; | |
dec x_60; | |
let x_63 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_64 : obj := ctor_7[Lean.MessageData.compose] x_63 x_62; | |
let x_65 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_66 : obj := ctor_7[Lean.MessageData.compose] x_64 x_65; | |
let x_67 : obj := 1; | |
let x_68 : obj := ctor_5[Lean.MessageData.nest] x_67 x_66; | |
let x_69 : obj := ctor_6[Lean.MessageData.group] x_68; | |
let x_70 : obj := ctor_1[List.cons] x_69 x_2; | |
let x_71 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_70; | |
ret x_71 | |
Option.some → | |
let x_72 : obj := proj[0] x_13; | |
inc x_72; | |
dec x_13; | |
let x_73 : obj := Lean.MessageData.ofExpr x_72; | |
case x_15 : u8 of | |
Bool.false → | |
let x_74 : obj := Simps.instToMessageDataProjectionData._closed_14; | |
let x_75 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_74; | |
let x_76 : obj := ctor_1[List.cons] x_73 x_75; | |
let x_77 : obj := ctor_1[List.cons] x_29 x_76; | |
let x_78 : obj := ctor_1[List.cons] x_26 x_77; | |
let x_79 : obj := ctor_1[List.cons] x_19 x_78; | |
let x_80 : obj := ctor_1[List.cons] x_18 x_79; | |
let x_81 : obj := ctor_1[List.cons] x_17 x_80; | |
let x_82 : obj := ctor_1[List.cons] x_16 x_81; | |
let x_83 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_84 : obj := Lean.MessageData.joinSep x_82 x_83; | |
dec x_82; | |
let x_85 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_86 : obj := ctor_7[Lean.MessageData.compose] x_85 x_84; | |
let x_87 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_88 : obj := ctor_7[Lean.MessageData.compose] x_86 x_87; | |
let x_89 : obj := 1; | |
let x_90 : obj := ctor_5[Lean.MessageData.nest] x_89 x_88; | |
let x_91 : obj := ctor_6[Lean.MessageData.group] x_90; | |
let x_92 : obj := ctor_1[List.cons] x_91 x_2; | |
let x_93 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_92; | |
ret x_93 | |
Bool.true → | |
let x_94 : obj := Simps.instToMessageDataProjectionData._closed_18; | |
let x_95 : obj := reuse x_6 in ctor_1[List.cons] x_23 x_94; | |
let x_96 : obj := ctor_1[List.cons] x_73 x_95; | |
let x_97 : obj := ctor_1[List.cons] x_29 x_96; | |
let x_98 : obj := ctor_1[List.cons] x_26 x_97; | |
let x_99 : obj := ctor_1[List.cons] x_19 x_98; | |
let x_100 : obj := ctor_1[List.cons] x_18 x_99; | |
let x_101 : obj := ctor_1[List.cons] x_17 x_100; | |
let x_102 : obj := ctor_1[List.cons] x_16 x_101; | |
let x_103 : obj := Simps.instToMessageDataProjectionData._closed_7; | |
let x_104 : obj := Lean.MessageData.joinSep x_102 x_103; | |
dec x_102; | |
let x_105 : obj := Simps.instToMessageDataProjectionData._closed_3; | |
let x_106 : obj := ctor_7[Lean.MessageData.compose] x_105 x_104; | |
let x_107 : obj := Simps.instToMessageDataProjectionData._closed_10; | |
let x_108 : obj := ctor_7[Lean.MessageData.compose] x_106 x_107; | |
let x_109 : obj := 1; | |
let x_110 : obj := ctor_5[Lean.MessageData.nest] x_109 x_108; | |
let x_111 : obj := ctor_6[Lean.MessageData.group] x_110; | |
let x_112 : obj := ctor_1[List.cons] x_111 x_2; | |
let x_113 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_5 x_112; | |
ret x_113; | |
case x_12 : u8 of | |
Bool.false → | |
let x_115 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_114 x_115 | |
Bool.true → | |
let x_116 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_114 x_116; | |
case x_11 : u8 of | |
Bool.false → | |
let x_118 : obj := Simps.instToMessageDataProjectionData._closed_11; | |
jmp block_117 x_118 | |
Bool.true → | |
let x_119 : obj := Simps.instToMessageDataProjectionData._closed_15; | |
jmp block_117 x_119 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 (x_1 : @& obj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := | |
let x_5 : u8 := USize.decEq x_2 x_3; | |
case x_5 : u8 of | |
Bool.false → | |
let x_6 : obj := Array.uget ◾ x_1 x_2 ◾; | |
let x_7 : usize := 1; | |
let x_8 : usize := USize.add x_2 x_7; | |
case x_6 : obj of | |
Simps.ProjectionRule.rename → | |
let x_9 : obj := proj[0] x_6; | |
inc x_9; | |
let x_10 : obj := proj[1] x_6; | |
inc x_10; | |
let x_11 : obj := proj[2] x_6; | |
inc x_11; | |
let x_12 : obj := proj[3] x_6; | |
inc x_12; | |
dec x_6; | |
let x_13 : obj := Array.size ◾ x_4; | |
let x_14 : usize := USize.ofNat x_13; | |
dec x_13; | |
let x_15 : usize := 0; | |
inc x_4; | |
let x_16 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_14 x_15 x_4; | |
let x_17 : u8 := Array.contains._at.Lean.findField?._spec_1 x_16 x_9; | |
dec x_16; | |
case x_17 : u8 of | |
Bool.false → | |
let x_18 : obj := ctor_0[Option.none]; | |
let x_19 : u8 := 1; | |
let x_20 : u8 := 0; | |
let x_21 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_22 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_9 x_10 x_11 x_12 x_18 x_21; | |
sset x_22[6, 0] : u8 := x_19; | |
sset x_22[6, 1] : u8 := x_20; | |
sset x_22[6, 2] : u8 := x_20; | |
let x_23 : obj := Array.push ◾ x_4 x_22; | |
let x_24 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_23; | |
ret x_24 | |
Bool.true → | |
let x_25 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_9 x_10 x_11 x_12 x_14 x_15 x_4; | |
dec x_9; | |
let x_26 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_25; | |
ret x_26 | |
Simps.ProjectionRule.add → | |
let x_27 : obj := proj[0] x_6; | |
inc x_27; | |
let x_28 : obj := proj[1] x_6; | |
inc x_28; | |
dec x_6; | |
let x_29 : obj := Array.size ◾ x_4; | |
let x_30 : usize := USize.ofNat x_29; | |
dec x_29; | |
let x_31 : usize := 0; | |
inc x_4; | |
let x_32 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_30 x_31 x_4; | |
let x_33 : u8 := Array.contains._at.Lean.findField?._spec_1 x_32 x_27; | |
dec x_32; | |
case x_33 : u8 of | |
Bool.false → | |
let x_34 : obj := ctor_0[Option.none]; | |
let x_35 : u8 := 1; | |
let x_36 : u8 := 0; | |
let x_37 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_28; | |
inc x_27; | |
let x_38 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_27 x_28 x_27 x_28 x_34 x_37; | |
sset x_38[6, 0] : u8 := x_35; | |
sset x_38[6, 1] : u8 := x_36; | |
sset x_38[6, 2] : u8 := x_36; | |
let x_39 : obj := Array.push ◾ x_4 x_38; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_39; | |
ret x_40 | |
Bool.true → | |
let x_41 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_27 x_28 x_30 x_31 x_4; | |
dec x_27; | |
let x_42 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_41; | |
ret x_42 | |
Simps.ProjectionRule.erase → | |
let x_43 : obj := proj[0] x_6; | |
inc x_43; | |
let x_44 : obj := proj[1] x_6; | |
inc x_44; | |
dec x_6; | |
let x_45 : obj := Array.size ◾ x_4; | |
let x_46 : usize := USize.ofNat x_45; | |
dec x_45; | |
let x_47 : usize := 0; | |
inc x_4; | |
let x_48 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_46 x_47 x_4; | |
let x_49 : u8 := Array.contains._at.Lean.findField?._spec_1 x_48 x_43; | |
dec x_48; | |
case x_49 : u8 of | |
Bool.false → | |
let x_50 : obj := ctor_0[Option.none]; | |
let x_51 : u8 := 0; | |
let x_52 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
inc x_44; | |
inc x_43; | |
let x_53 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_43 x_44 x_43 x_44 x_50 x_52; | |
sset x_53[6, 0] : u8 := x_51; | |
sset x_53[6, 1] : u8 := x_51; | |
sset x_53[6, 2] : u8 := x_51; | |
let x_54 : obj := Array.push ◾ x_4 x_53; | |
let x_55 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_54; | |
ret x_55 | |
Bool.true → | |
let x_56 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_43 x_44 x_46 x_47 x_4; | |
dec x_43; | |
let x_57 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_56; | |
ret x_57 | |
Simps.ProjectionRule.prefix → | |
let x_58 : obj := proj[0] x_6; | |
inc x_58; | |
let x_59 : obj := proj[1] x_6; | |
inc x_59; | |
dec x_6; | |
let x_60 : obj := Array.size ◾ x_4; | |
let x_61 : usize := USize.ofNat x_60; | |
dec x_60; | |
let x_62 : usize := 0; | |
inc x_4; | |
let x_63 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_61 x_62 x_4; | |
let x_64 : u8 := Array.contains._at.Lean.findField?._spec_1 x_63 x_58; | |
dec x_63; | |
case x_64 : u8 of | |
Bool.false → | |
let x_65 : obj := ctor_0[Option.none]; | |
let x_66 : u8 := 1; | |
let x_67 : obj := Lean.Parser.Attr._aux_Mathlib_Tactic_Simps_Basic___macroRules_Lean_Parser_Attr_attrSimps?__1._closed_3; | |
let x_68 : u8 := 0; | |
inc x_59; | |
inc x_58; | |
let x_69 : obj := ctor_0.0.3[Simps.ParsedProjectionData.mk] x_58 x_59 x_58 x_59 x_65 x_67; | |
sset x_69[6, 0] : u8 := x_66; | |
sset x_69[6, 1] : u8 := x_66; | |
sset x_69[6, 2] : u8 := x_68; | |
let x_70 : obj := Array.push ◾ x_4 x_69; | |
let x_71 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_70; | |
ret x_71 | |
Bool.true → | |
let x_72 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_58 x_59 x_61 x_62 x_4; | |
dec x_58; | |
let x_73 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_8 x_3 x_72; | |
ret x_73 | |
Bool.true → | |
ret x_4 | |
def Simps.applyProjectionRules._lambda_1 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._closed_1 : obj := | |
let x_1 : obj := pap Lean.Name.instDecidableEq._boxed; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_2 : obj := | |
let x_1 : obj := "Invalid projection names. Two projections have the same name.\nThis is likely because a custom composition of projections was given the same name as an existing projection. Solution: rename the existing projection (before naming the custom projection)."; | |
ret x_1 | |
def Simps.applyProjectionRules._lambda_2._closed_3 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._lambda_2._closed_2; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules._lambda_2 (x_1 : obj) (x_2 : @& obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_1; | |
let x_7 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_8 : usize := 0; | |
inc x_1; | |
let x_9 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_7 x_8 x_1; | |
let x_10 : obj := Array.toList ◾ x_9; | |
let x_11 : obj := Simps.applyProjectionRules._lambda_2._closed_1; | |
let x_12 : u8 := List.nodupDecidable._rarg x_11 x_10; | |
case x_12 : u8 of | |
Bool.false → | |
dec x_1; | |
let x_13 : obj := Simps.applyProjectionRules._lambda_2._closed_3; | |
let x_14 : obj := Lean.throwError._at.Lean.realizeGlobalConstCore._spec_3 x_13 x_3 x_4 x_5; | |
let x_15 : u8 := isShared x_14; | |
case x_15 : u8 of | |
Bool.false → | |
ret x_14 | |
Bool.true → | |
let x_16 : obj := proj[0] x_14; | |
let x_17 : obj := proj[1] x_14; | |
inc x_17; | |
inc x_16; | |
dec x_14; | |
let x_18 : obj := ctor_1[EStateM.Result.error] x_16 x_17; | |
ret x_18 | |
Bool.true → | |
let x_19 : obj := ctor_0[EStateM.Result.ok] x_1 x_5; | |
ret x_19 | |
def Simps.applyProjectionRules._closed_1 : obj := | |
let x_1 : obj := "Projection info after applying the rules: "; | |
ret x_1 | |
def Simps.applyProjectionRules._closed_2 : obj := | |
let x_1 : obj := Simps.applyProjectionRules._closed_1; | |
let x_2 : obj := Lean.stringToMessageData x_1; | |
dec x_1; | |
ret x_2 | |
def Simps.applyProjectionRules (x_1 : obj) (x_2 : obj) (x_3 : @& obj) (x_4 : @& obj) (x_5 : obj) : obj := | |
let x_6 : obj := Array.size ◾ x_2; | |
let x_7 : obj := 0; | |
let x_8 : u8 := Nat.decLt x_7 x_6; | |
let x_9 : obj := initFn.«_@».Mathlib.Tactic.Simps.Basic._hyg.1699._closed_2; | |
inc x_9; | |
let x_10 : obj := Lean.isTracingEnabledFor._at.Lean.addDecl._spec_8 x_9 x_3 x_4 x_5; | |
block_28 (x_11 : obj) (x_12 : u8) (x_13 : obj) := | |
case x_12 : u8 of | |
Bool.false → | |
dec x_9; | |
let x_14 : obj := ctor_0[PUnit.unit]; | |
let x_15 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_14 x_3 x_4 x_13; | |
ret x_15 | |
Bool.true → | |
inc x_11; | |
let x_16 : obj := Array.toList ◾ x_11; | |
let x_17 : obj := ctor_0[List.nil]; | |
let x_18 : obj := List.mapTR.loop._at.Simps.applyProjectionRules._spec_9 x_16 x_17; | |
let x_19 : obj := Lean.MessageData.ofList x_18; | |
dec x_18; | |
let x_20 : obj := Simps.applyProjectionRules._closed_2; | |
let x_21 : obj := ctor_7[Lean.MessageData.compose] x_20 x_19; | |
let x_22 : obj := Simps.getCompositeOfProjectionsAux._closed_7; | |
let x_23 : obj := ctor_7[Lean.MessageData.compose] x_21 x_22; | |
let x_24 : obj := Lean.addTrace._at.Lean.PrettyPrinter.format._spec_2 x_9 x_23 x_3 x_4 x_13; | |
let x_25 : obj := proj[0] x_24; | |
inc x_25; | |
let x_26 : obj := proj[1] x_24; | |
inc x_26; | |
dec x_24; | |
let x_27 : obj := Simps.applyProjectionRules._lambda_2 x_11 x_25 x_3 x_4 x_26; | |
dec x_25; | |
ret x_27; | |
case x_8 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_29 : obj := proj[0] x_10; | |
inc x_29; | |
let x_30 : obj := proj[1] x_10; | |
inc x_30; | |
dec x_10; | |
let x_31 : u8 := unbox x_29; | |
dec x_29; | |
jmp block_28 x_1 x_31 x_30 | |
Bool.true → | |
let x_32 : u8 := Nat.decLe x_6 x_6; | |
case x_32 : u8 of | |
Bool.false → | |
dec x_6; | |
dec x_2; | |
let x_33 : obj := proj[0] x_10; | |
inc x_33; | |
let x_34 : obj := proj[1] x_10; | |
inc x_34; | |
dec x_10; | |
let x_35 : u8 := unbox x_33; | |
dec x_33; | |
jmp block_28 x_1 x_35 x_34 | |
Bool.true → | |
let x_36 : obj := proj[0] x_10; | |
inc x_36; | |
let x_37 : obj := proj[1] x_10; | |
inc x_37; | |
dec x_10; | |
let x_38 : usize := 0; | |
let x_39 : usize := USize.ofNat x_6; | |
dec x_6; | |
let x_40 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_2 x_38 x_39 x_1; | |
dec x_2; | |
let x_41 : u8 := unbox x_36; | |
dec x_36; | |
jmp block_28 x_40 x_41 x_37 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) : obj := | |
let x_4 : usize := unbox x_1; | |
dec x_1; | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_1 x_4 x_5 x_3; | |
ret x_6 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) (x_6 : obj) (x_7 : obj) : obj := | |
let x_8 : usize := unbox x_5; | |
dec x_5; | |
let x_9 : usize := unbox x_6; | |
dec x_6; | |
let x_10 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_2 x_1 x_2 x_3 x_4 x_8 x_9 x_7; | |
dec x_1; | |
ret x_10 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_3 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_4 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : usize := unbox x_4; | |
dec x_4; | |
let x_8 : obj := Array.mapMUnsafe.map._at.Simps.applyProjectionRules._spec_5 x_1 x_2 x_6 x_7 x_5; | |
dec x_1; | |
ret x_8 | |
def Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) : obj := | |
let x_5 : usize := unbox x_2; | |
dec x_2; | |
let x_6 : usize := unbox x_3; | |
dec x_3; | |
let x_7 : obj := Array.foldlMUnsafe.fold._at.Simps.applyProjectionRules._spec_10 x_1 x_5 x_6 x_4; | |
dec x_1; | |
ret x_7 | |
def Simps.applyProjectionRules._lambda_1._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_1 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._lambda_2._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules._lambda_2 x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
dec x_2; | |
ret x_6 | |
def Simps.applyProjectionRules._boxed (x_1 : obj) (x_2 : obj) (x_3 : obj) (x_4 : obj) (x_5 : obj) : obj := | |
let x_6 : obj := Simps.applyProjectionRules x_1 x_2 x_3 x_4 x_5; | |
dec x_4; | |
dec x_3; | |
ret x_6 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment