[Meta.isDefEq] [0.000011s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000008s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000017s] ✅ Finset Unit =?= Finset ?m.53 [Meta.isDefEq] [0.000014s] ✅ Finset Unit =?= Finset ?m.53 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.53 [Meta.isDefEq] Unit [nonassignable] =?= ?m.53 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.50 =?= Type [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000008s] ✅ Finset (Finset Unit) =?= ?m.182 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.182 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.2 =?= Type [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000168s] 💥 EmptyCollection ?m.6 [Meta.synthInstance] [0.000065s] new goal EmptyCollection ?m.6 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000068s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.6 [Meta.synthInstance.tryResolve] [0.000053s] 💥 EmptyCollection ?m.6 ≟ EmptyCollection (Set ?m.41) [Meta.isDefEq] [0.000051s] 💥 EmptyCollection ?m.6 =?= EmptyCollection (Set ?m.41) [Meta.isDefEq] [0.000006s] 💥 ?m.6 =?= Set ?m.41 [Meta.isDefEq] ?m.6 [nonassignable] =?= Set ?m.41 [nonassignable] [Meta.isDefEq] [0.000018s] ✅ Finset Unit =?= ?m.6 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.6 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.5 =?= Type [Meta.synthInstance] [0.000112s] ✅ EmptyCollection (Finset Unit) [Meta.synthInstance] [0.000013s] new goal EmptyCollection (Finset Unit) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000075s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset Unit) [Meta.synthInstance.tryResolve] [0.000052s] ✅ EmptyCollection (Finset Unit) ≟ EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000036s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset ?m.45) [Meta.isDefEq] [0.000022s] ✅ Finset Unit =?= Finset ?m.45 [Meta.isDefEq] [0.000006s] ✅ Unit =?= ?m.45 [Meta.isDefEq] Unit [nonassignable] =?= ?m.45 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.44 =?= Type [Meta.isDefEq] [0.000009s] ✅ ?m.43 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.43 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000016s] ✅ ?m.7 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.7 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000012s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000015s] ✅ Sort ?u.3 =?= Type ?u.4 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000002s] ✅ Type ?u.4 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.synthInstance] [0.000082s] 💥 Singleton ?m.61 ?m.58 [Meta.synthInstance] [0.000010s] new goal Singleton _tc.0 ?m.58 [Meta.synthInstance.instances] #[@Finset.instSingletonFinset, @Multiset.instSingletonMultiset, @List.instSingletonList, @Set.instSingletonSet] [Meta.synthInstance] [0.000056s] 💥 apply @Set.instSingletonSet to Singleton ?m.132 ?m.58 [Meta.synthInstance.tryResolve] [0.000047s] 💥 Singleton ?m.132 ?m.58 ≟ Singleton ?m.138 (Set ?m.138) [Meta.isDefEq] [0.000045s] 💥 Singleton ?m.132 ?m.58 =?= Singleton ?m.138 (Set ?m.138) [Meta.isDefEq] [0.000016s] ✅ ?m.132 =?= ?m.138 [Meta.isDefEq] ?m.132 [assignable] =?= ?m.138 [assignable] [Meta.isDefEq] [0.000011s] ✅ outParam (Type ?u.60) =?= Type ?u.137 [Meta.isDefEq] [0.000001s] ✅ Type ?u.60 =?= Type ?u.137 [Meta.isDefEq] [0.000001s] 💥 ?m.58 =?= Set ?m.138 [Meta.isDefEq] ?m.58 [nonassignable] =?= Set ?m.138 [nonassignable] [Meta.synthInstance] [0.000050s] 💥 Singleton ?m.61 ?m.58 [Meta.synthInstance] [0.000006s] new goal Singleton _tc.0 ?m.58 [Meta.synthInstance.instances] #[@Finset.instSingletonFinset, @Multiset.instSingletonMultiset, @List.instSingletonList, @Set.instSingletonSet] [Meta.synthInstance] [0.000033s] 💥 apply @Set.instSingletonSet to Singleton ?m.175 ?m.58 [Meta.synthInstance.tryResolve] [0.000025s] 💥 Singleton ?m.175 ?m.58 ≟ Singleton ?m.181 (Set ?m.181) [Meta.isDefEq] [0.000024s] 💥 Singleton ?m.175 ?m.58 =?= Singleton ?m.181 (Set ?m.181) [Meta.isDefEq] [0.000015s] ✅ ?m.175 =?= ?m.181 [Meta.isDefEq] ?m.175 [assignable] =?= ?m.181 [assignable] [Meta.isDefEq] [0.000010s] ✅ outParam (Type ?u.60) =?= Type ?u.180 [Meta.isDefEq] [0.000001s] ✅ Type ?u.60 =?= Type ?u.180 [Meta.isDefEq] [0.000001s] 💥 ?m.58 =?= Set ?m.181 [Meta.isDefEq] ?m.58 [nonassignable] =?= Set ?m.181 [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.54 =?= Type [Meta.synthInstance] [0.000155s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance] [0.000007s] new goal Singleton _tc.0 (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instSingletonFinset] [Meta.synthInstance] [0.000099s] ✅ apply @Finset.instSingletonFinset to Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000087s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) ≟ Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000052s] ✅ Singleton ?m.217 (Finset (Finset Unit)) =?= Singleton ?m.220 (Finset ?m.220) [Meta.isDefEq] [0.000014s] ✅ ?m.217 =?= ?m.220 [Meta.isDefEq] ?m.217 [assignable] =?= ?m.220 [assignable] [Meta.isDefEq] [0.000009s] ✅ outParam (Type ?u.60) =?= Type ?u.219 [Meta.isDefEq] [0.000001s] ✅ Type ?u.60 =?= Type ?u.219 [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.220 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.220 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.220 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.60 =?= Type [Meta.isDefEq] [0.000031s] ✅ ?m.218 =?= Finset.instSingletonFinset [Meta.isDefEq] ?m.218 [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000023s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] result Finset.instSingletonFinset [Meta.isDefEq] [0.000026s] ✅ Singleton ?m.61 (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ✅ ?m.61 =?= Finset Unit [Meta.isDefEq] ?m.61 [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.60 =?= Type [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000014s] ✅ ?m.59 =?= Finset.instSingletonFinset [Meta.isDefEq] ?m.59 [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000010s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000057s] 💥 EmptyCollection ?m.61 [Meta.synthInstance] [0.000023s] new goal EmptyCollection ?m.61 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000023s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.61 [Meta.synthInstance.tryResolve] [0.000014s] 💥 EmptyCollection ?m.61 ≟ EmptyCollection (Set ?m.96) [Meta.isDefEq] [0.000013s] 💥 EmptyCollection ?m.61 =?= EmptyCollection (Set ?m.96) [Meta.isDefEq] [0.000002s] 💥 ?m.61 =?= Set ?m.96 [Meta.isDefEq] ?m.61 [nonassignable] =?= Set ?m.96 [nonassignable] [Meta.isDefEq] [0.000010s] ✅ ?m.56 =?= ?m.61 [Meta.isDefEq] ?m.56 [assignable] =?= ?m.61 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.55 =?= Type ?u.60 [Meta.synthInstance] [0.000047s] 💥 EmptyCollection ?m.61 [Meta.synthInstance] [0.000020s] new goal EmptyCollection ?m.61 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000019s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.61 [Meta.synthInstance.tryResolve] [0.000011s] 💥 EmptyCollection ?m.61 ≟ EmptyCollection (Set ?m.131) [Meta.isDefEq] [0.000008s] 💥 EmptyCollection ?m.61 =?= EmptyCollection (Set ?m.131) [Meta.isDefEq] [0.000001s] 💥 ?m.61 =?= Set ?m.131 [Meta.isDefEq] ?m.61 [nonassignable] =?= Set ?m.131 [nonassignable] [Meta.isDefEq] [0.000001s] ✅ ?m.61 =?= ?m.61 [Meta.synthInstance] [0.000048s] 💥 EmptyCollection ?m.61 [Meta.synthInstance] [0.000024s] new goal EmptyCollection ?m.61 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000016s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.61 [Meta.synthInstance.tryResolve] [0.000009s] 💥 EmptyCollection ?m.61 ≟ EmptyCollection (Set ?m.174) [Meta.isDefEq] [0.000007s] 💥 EmptyCollection ?m.61 =?= EmptyCollection (Set ?m.174) [Meta.isDefEq] [0.000001s] 💥 ?m.61 =?= Set ?m.174 [Meta.isDefEq] ?m.61 [nonassignable] =?= Set ?m.174 [nonassignable] [Meta.synthInstance] [0.000050s] 💥 EmptyCollection ?m.61 [Meta.synthInstance] [0.000021s] new goal EmptyCollection ?m.61 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000020s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.61 [Meta.synthInstance.tryResolve] [0.000011s] 💥 EmptyCollection ?m.61 ≟ EmptyCollection (Set ?m.216) [Meta.isDefEq] [0.000010s] 💥 EmptyCollection ?m.61 =?= EmptyCollection (Set ?m.216) [Meta.isDefEq] [0.000001s] 💥 ?m.61 =?= Set ?m.216 [Meta.isDefEq] ?m.61 [nonassignable] =?= Set ?m.216 [nonassignable] [Meta.synthInstance] [0.000006s] ✅ EmptyCollection (Finset Unit) [Meta.synthInstance] result Finset.instEmptyCollectionFinset (cached) [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000009s] ✅ ?m.62 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.62 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000006s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.017143s] ✅ Finset.powerset ∅ = {∅} =?= ?m.230 = ?m.230 [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= ?m.229 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.229 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.228 =?= Type [Meta.isDefEq] [0.000007s] ✅ Finset.powerset ∅ =?= ?m.230 [Meta.isDefEq] Finset.powerset ∅ [nonassignable] =?= ?m.230 [assignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.017108s] ✅ {∅} =?= Finset.powerset ∅ [Meta.isDefEq] [0.017098s] ✅ {∅} =?= Finset.powerset ∅ [Meta.isDefEq] [0.017053s] ✅ {∅} =?= { val := Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t), nodup := (_ : Multiset.Nodup (Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t))) } [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.009029s] ✅ {∅}.val =?= Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.008980s] ✅ {∅}.val =?= Quot.recOn' (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (Multiset.powerset ∅.val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.008955s] ✅ {∅}.val =?= Quot.rec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.008917s] ✅ {∅}.val =?= Eq.ndrecOn (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).snd (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000198s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000189s] ✅ Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000173s] ✅ Quot.liftOn ∅.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000135s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000066s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000058s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000048s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.008626s] ✅ {∅}.val =?= PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.008612s] ✅ {∅}.1 =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).2 (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.008563s] ✅ {∅} =?= ↑(List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008545s] ✅ {∅} =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008540s] ✅ Multiset.instSingletonMultiset.1 ∅ =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008525s] ✅ ∅ ::ₘ 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008512s] ✅ Quot.liftOn 0 (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008504s] ✅ Quot.lift (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008487s] ✅ ↑[∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.008482s] ✅ Quot.mk Setoid.r [∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.008461s] ✅ [∅] =?= List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000956s] ✅ [∅] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000864s] ✅ ∅ =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000479s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000472s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000467s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000449s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000432s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000417s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000409s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000397s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000391s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000386s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000375s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000363s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000343s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000334s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000366s] ✅ ∅.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 ∅) [Meta.isDefEq] [0.000347s] ✅ Multiset.Nodup ∅.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000343s] ✅ Multiset.Nodup ∅.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000318s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000312s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000306s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000296s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000286s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000281s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000276s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000271s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000267s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000251s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000245s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000237s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000231s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000075s] ✅ [] =?= List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.008002s] ✅ {∅}.nodup =?= Finset.powerset.proof_2 ∅ [Meta.isDefEq] [0.007968s] ✅ Multiset.Nodup {∅}.val =?= Multiset.Nodup (Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007960s] ✅ {∅}.val =?= Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007951s] ✅ {∅}.val =?= Quot.recOn' (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (Multiset.powerset ∅.val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007945s] ✅ {∅}.val =?= Quot.rec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007936s] ✅ {∅}.val =?= Eq.ndrecOn (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).snd (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000096s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000089s] ✅ Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000082s] ✅ Quot.liftOn ∅.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000071s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000045s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000039s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000034s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.007821s] ✅ {∅}.val =?= PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007813s] ✅ {∅}.1 =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).2 (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007772s] ✅ {∅} =?= ↑(List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007761s] ✅ {∅} =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007756s] ✅ Multiset.instSingletonMultiset.1 ∅ =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007749s] ✅ ∅ ::ₘ 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007744s] ✅ Quot.liftOn 0 (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007737s] ✅ Quot.lift (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007721s] ✅ ↑[∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007716s] ✅ Quot.mk Setoid.r [∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.007708s] ✅ [∅] =?= List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000777s] ✅ [∅] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000690s] ✅ ∅ =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000334s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000325s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000320s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000297s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000291s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000287s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000281s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000272s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000263s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000257s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000247s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000242s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000338s] ✅ ∅.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) fun _t h => Multiset.nodup_of_le (Iff.mp Multiset.mem_powerset h) ∅.nodup [Meta.isDefEq] [0.000334s] ✅ Multiset.Nodup ∅.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000330s] ✅ Multiset.Nodup ∅.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000322s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000316s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000311s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000301s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000292s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000287s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000282s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000273s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000260s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000254s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000246s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000241s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000074s] ✅ [] =?= List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.015556s] ✅ Finset.powerset ∅ = Finset.powerset ∅ =?= Finset.powerset ∅ = {∅} [Meta.isDefEq] [0.000000s] ✅ Finset.powerset ∅ =?= Finset.powerset ∅ [Meta.isDefEq] [0.015544s] ✅ Finset.powerset ∅ =?= {∅} [Meta.isDefEq] [0.015527s] ✅ { val := Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t), nodup := (_ : Multiset.Nodup (Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t))) } =?= {∅} [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.007777s] ✅ {∅}.val =?= Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007767s] ✅ {∅}.val =?= Quot.recOn' (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (Multiset.powerset ∅.val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007760s] ✅ {∅}.val =?= Quot.rec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007751s] ✅ {∅}.val =?= Eq.ndrecOn (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).snd (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000099s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000091s] ✅ Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000084s] ✅ Quot.liftOn ∅.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000075s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000048s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000042s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000037s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.007632s] ✅ {∅}.val =?= PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007623s] ✅ {∅}.1 =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).2 (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007581s] ✅ {∅} =?= ↑(List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007568s] ✅ {∅} =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007563s] ✅ Multiset.instSingletonMultiset.1 ∅ =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007557s] ✅ ∅ ::ₘ 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007551s] ✅ Quot.liftOn 0 (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007544s] ✅ Quot.lift (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007528s] ✅ ↑[∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007522s] ✅ Quot.mk Setoid.r [∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.007512s] ✅ [∅] =?= List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000745s] ✅ [∅] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000665s] ✅ ∅ =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000315s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000309s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000304s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000293s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000283s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000278s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000273s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000259s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000252s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000245s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000236s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000231s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000330s] ✅ ∅.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 ∅) [Meta.isDefEq] [0.000319s] ✅ Multiset.Nodup ∅.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000316s] ✅ Multiset.Nodup ∅.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000298s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000288s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000278s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000273s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000269s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000255s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000248s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000240s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000231s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000226s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000071s] ✅ [] =?= List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.007738s] ✅ {∅}.nodup =?= Finset.powerset.proof_2 ∅ [Meta.isDefEq] [0.007734s] ✅ Multiset.Nodup {∅}.val =?= Multiset.Nodup (Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007726s] ✅ {∅}.val =?= Multiset.pmap Finset.mk (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007717s] ✅ {∅}.val =?= Quot.recOn' (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (Multiset.powerset ∅.val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007710s] ✅ {∅}.val =?= Quot.rec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset Unit)) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → Multiset.Nodup a) → Multiset (Finset Unit)) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset ∅.val) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007702s] ✅ {∅}.val =?= Eq.ndrecOn (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).snd (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000094s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000086s] ✅ Multiset.powerset ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000079s] ✅ Quot.liftOn ∅.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000071s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) ∅.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000046s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000040s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.007590s] ✅ {∅}.val =?= PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007582s] ✅ {∅}.1 =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset ∅.val)).2 (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.007543s] ✅ {∅} =?= ↑(List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007531s] ✅ {∅} =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007526s] ✅ Multiset.instSingletonMultiset.1 ∅ =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007521s] ✅ ∅ ::ₘ 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007515s] ✅ Quot.liftOn 0 (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007508s] ✅ Quot.lift (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) 0 =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007493s] ✅ ↑[∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.007488s] ✅ Quot.mk Setoid.r [∅] =?= Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t)) [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.007478s] ✅ [∅] =?= List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset ∅.val → Multiset.Nodup _t) [Meta.isDefEq] [0.000750s] ✅ [∅] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000670s] ✅ ∅ =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000323s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000316s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000312s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000301s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000291s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000285s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000281s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000276s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000271s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000267s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000257s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000251s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000242s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000237s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000328s] ✅ ∅.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) fun _t h => Multiset.nodup_of_le (Iff.mp Multiset.mem_powerset h) ∅.nodup [Meta.isDefEq] [0.000318s] ✅ Multiset.Nodup ∅.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000315s] ✅ Multiset.Nodup ∅.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ ∅.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ ∅.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000297s] ✅ ∅.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000287s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000272s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000263s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000259s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000254s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000246s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000240s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000232s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000227s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000072s] ✅ [] =?= List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x) [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Multiset Unit =?= Multiset ?m.3245 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.3245 [Meta.isDefEq] Unit [nonassignable] =?= ?m.3245 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3244 =?= Type [Meta.isDefEq] [0.000016s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3249 [Meta.isDefEq] [0.000006s] ✅ Multiset Unit =?= ?m.3249 [Meta.isDefEq] Multiset Unit [nonassignable] =?= ?m.3249 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3246 =?= Type [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000006s] ✅ Multiset (Multiset (Multiset Unit)) =?= ?m.3268 [Meta.isDefEq] Multiset (Multiset (Multiset Unit)) [nonassignable] =?= ?m.3268 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.3238 =?= Type [Meta.isDefEq] [0.000011s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000007s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000025s] ✅ Multiset Unit =?= Multiset ?m.3242 [Meta.isDefEq] [0.000009s] ✅ Unit =?= ?m.3242 [Meta.isDefEq] Unit [nonassignable] =?= ?m.3242 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3241 =?= Type [Meta.isDefEq] [0.000003s] ✅ Sort ?u.3239 =?= Type ?u.3240 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.3240 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000008s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000015s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset ?m.3255 [Meta.isDefEq] [0.000005s] ✅ Multiset (Multiset Unit) =?= ?m.3255 [Meta.isDefEq] Multiset (Multiset Unit) [nonassignable] =?= ?m.3255 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3254 =?= Type [Meta.isDefEq] [0.000008s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000018s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3257 [Meta.isDefEq] [0.000014s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3257 [Meta.isDefEq] [0.000005s] ✅ Multiset Unit =?= ?m.3257 [Meta.isDefEq] Multiset Unit [nonassignable] =?= ?m.3257 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3256 =?= Type [Meta.isDefEq] [0.000012s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000007s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000008s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000015s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset ?m.3259 [Meta.isDefEq] [0.000005s] ✅ Multiset (Multiset Unit) =?= ?m.3259 [Meta.isDefEq] Multiset (Multiset Unit) [nonassignable] =?= ?m.3259 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3258 =?= Type [Meta.isDefEq] [0.000008s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000010s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000006s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000017s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3261 [Meta.isDefEq] [0.000013s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3261 [Meta.isDefEq] [0.000005s] ✅ Multiset Unit =?= ?m.3261 [Meta.isDefEq] Multiset Unit [nonassignable] =?= ?m.3261 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3260 =?= Type [Meta.isDefEq] [0.000010s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000007s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000017s] ✅ Multiset Unit =?= Multiset ?m.3263 [Meta.isDefEq] [0.000013s] ✅ Multiset Unit =?= Multiset ?m.3263 [Meta.isDefEq] [0.000004s] ✅ Unit =?= ?m.3263 [Meta.isDefEq] Unit [nonassignable] =?= ?m.3263 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3262 =?= Type [Meta.isDefEq] [0.000012s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000007s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Multiset (Multiset Unit) =?= Multiset ?m.3265 [Meta.isDefEq] [0.000005s] ✅ Multiset Unit =?= ?m.3265 [Meta.isDefEq] Multiset Unit [nonassignable] =?= ?m.3265 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3264 =?= Type [Meta.isDefEq] [0.000008s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000018s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset ?m.3267 [Meta.isDefEq] [0.000005s] ✅ Multiset (Multiset Unit) =?= ?m.3267 [Meta.isDefEq] Multiset (Multiset Unit) [nonassignable] =?= ?m.3267 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.3266 =?= Type [Meta.isDefEq] [0.000009s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000001s] ✅ Sort ?u.3250 =?= Type ?u.3251 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.3251 =?= Type ?u.3252 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.3252 =?= Type ?u.3253 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.3253 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.261261s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) = Multiset.zero ::ₘ (Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero =?= ?m.3272 = ?m.3272 [Meta.isDefEq] [0.000005s] ✅ Multiset (Multiset (Multiset Unit)) =?= ?m.3271 [Meta.isDefEq] Multiset (Multiset (Multiset Unit)) [nonassignable] =?= ?m.3271 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.3270 =?= Type [Meta.isDefEq] [0.000007s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= ?m.3272 [Meta.isDefEq] Multiset.powerset (Multiset.powerset Multiset.zero) [nonassignable] =?= ?m.3272 [assignable] [Meta.isDefEq] [0.000001s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) [Meta.isDefEq] [0.261226s] ✅ Multiset.zero ::ₘ (Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261220s] ✅ Multiset.zero ::ₘ (Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261207s] ✅ Quot.liftOn ((Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero) (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset (Multiset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261174s] ✅ Quot.lift (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset (Multiset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) ((Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero) =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261146s] ✅ ↑[Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261139s] ✅ Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261126s] ✅ Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Quot.liftOn (Multiset.powerset Multiset.zero) (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) [Meta.isDefEq] [0.261119s] ✅ Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.261101s] ✅ Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= ↑(Multiset.powersetAux (Multiset.powersetAux [])) [Meta.isDefEq] [0.261096s] ✅ Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Quot.mk Setoid.r (Multiset.powersetAux (Multiset.powersetAux [])) [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.261080s] ✅ [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= Multiset.powersetAux (Multiset.powersetAux []) [Meta.isDefEq] [0.261069s] ✅ [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= List.map Multiset.ofList (List.sublists (Multiset.powersetAux [])) [Meta.isDefEq] [0.038633s] ✅ [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] :: List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1]] [Meta.isDefEq] [0.019228s] ✅ Multiset.zero =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] [Meta.isDefEq] [0.019213s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] [Meta.isDefEq] [0.019207s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] [Meta.isDefEq] [0.019202s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.019182s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] [Meta.isDefEq] [0.019169s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) [Meta.isDefEq] [0.019149s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } [Meta.isDefEq] [0.019141s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } [Meta.isDefEq] [0.000350s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] [Meta.isDefEq] [0.000338s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) [Meta.isDefEq] [0.000327s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } [Meta.isDefEq] [0.000321s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Multiset Unit) =?= List (Multiset Unit) [Meta.isDefEq] [0.019372s] ✅ [Multiset.zero ::ₘ Multiset.zero] =?= List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1]] [Meta.isDefEq] [0.019337s] ✅ [Multiset.zero ::ₘ Multiset.zero] =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] :: List.map Multiset.ofList [] [Meta.isDefEq] [0.019298s] ✅ Multiset.zero ::ₘ Multiset.zero =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019288s] ✅ Multiset.zero ::ₘ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019281s] ✅ Quot.liftOn Multiset.zero (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019267s] ✅ Quot.lift (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019256s] ✅ ↑[Multiset.zero] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019251s] ✅ Quot.mk Setoid.r [Multiset.zero] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.019237s] ✅ [Multiset.zero] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] [Meta.isDefEq] [0.019230s] ✅ [Multiset.zero] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) [Meta.isDefEq] [0.019220s] ✅ [Multiset.zero] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } [Meta.isDefEq] [0.019215s] ✅ [Multiset.zero] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } [Meta.isDefEq] [0.000758s] ✅ [Multiset.zero] =?= List.get (List.concat [] (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0]))) } [Meta.isDefEq] [0.000616s] ✅ [Multiset.zero] =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] [Meta.isDefEq] [0.000283s] ✅ Multiset.zero =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000270s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000254s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000247s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000238s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000232s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000323s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] [Meta.isDefEq] [0.000317s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) [Meta.isDefEq] [0.000308s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } [Meta.isDefEq] [0.000303s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000000s] ✅ List (Multiset Unit) =?= List (Multiset Unit) [Meta.isDefEq] [0.000026s] ✅ [] =?= List.map Multiset.ofList [] [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Multiset (Multiset Unit)) =?= List (Multiset (Multiset Unit)) [Meta.isDefEq] [0.256694s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) = Multiset.powerset (Multiset.powerset Multiset.zero) =?= Multiset.powerset (Multiset.powerset Multiset.zero) = Multiset.zero ::ₘ (Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero [Meta.isDefEq] [0.000000s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= Multiset.powerset (Multiset.powerset Multiset.zero) [Meta.isDefEq] [0.256681s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= Multiset.zero ::ₘ (Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero [Meta.isDefEq] [0.256672s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= Quot.liftOn ((Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero) (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset (Multiset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) [Meta.isDefEq] [0.256664s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= Quot.lift (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset (Multiset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) ((Multiset.zero ::ₘ Multiset.zero) ::ₘ Multiset.zero) [Meta.isDefEq] [0.256647s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= ↑[Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256642s] ✅ Multiset.powerset (Multiset.powerset Multiset.zero) =?= Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256636s] ✅ Quot.liftOn (Multiset.powerset Multiset.zero) (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256627s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Multiset.powerset Multiset.zero) =?= Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256610s] ✅ ↑(Multiset.powersetAux (Multiset.powersetAux [])) =?= Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256604s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (Multiset.powersetAux [])) =?= Quot.mk Setoid.r [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.256596s] ✅ Multiset.powersetAux (Multiset.powersetAux []) =?= [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.256588s] ✅ List.map Multiset.ofList (List.sublists (Multiset.powersetAux [])) =?= [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.037513s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] :: List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1]] =?= [Multiset.zero, Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.018407s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] =?= Multiset.zero [Meta.isDefEq] [0.018399s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] =?= Multiset.zero [Meta.isDefEq] [0.018394s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] =?= ↑[] [Meta.isDefEq] [0.018389s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.018380s] ✅ (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[0] =?= [] [Meta.isDefEq] [0.018366s] ✅ instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) =?= [] [Meta.isDefEq] [0.018336s] ✅ Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } =?= [] [Meta.isDefEq] [0.018327s] ✅ List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } =?= [] [Meta.isDefEq] [0.000330s] ✅ (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] =?= [] [Meta.isDefEq] [0.000321s] ✅ instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) =?= [] [Meta.isDefEq] [0.000311s] ✅ Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } =?= [] [Meta.isDefEq] [0.000305s] ✅ List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Multiset Unit) =?= List (Multiset Unit) [Meta.isDefEq] [0.019097s] ✅ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1]] =?= [Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.019061s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] :: List.map Multiset.ofList [] =?= [Multiset.zero ::ₘ Multiset.zero] [Meta.isDefEq] [0.019029s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= Multiset.zero ::ₘ Multiset.zero [Meta.isDefEq] [0.019022s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= Multiset.zero ::ₘ Multiset.zero [Meta.isDefEq] [0.019016s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= Quot.liftOn Multiset.zero (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) [Meta.isDefEq] [0.019009s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= Quot.lift (fun l => ↑(Multiset.zero :: l)) (_ : ∀ (x x_1 : List (Multiset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.zero :: x) = Quot.mk Setoid.r (Multiset.zero :: x_1)) Multiset.zero [Meta.isDefEq] [0.019001s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= ↑[Multiset.zero] [Meta.isDefEq] [0.018996s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= Quot.mk Setoid.r [Multiset.zero] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.018989s] ✅ (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))[1] =?= [Multiset.zero] [Meta.isDefEq] [0.018980s] ✅ instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) =?= [Multiset.zero] [Meta.isDefEq] [0.018971s] ✅ Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } =?= [Multiset.zero] [Meta.isDefEq] [0.018965s] ✅ List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux [])).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (Multiset.powersetAux []))) } =?= [Multiset.zero] [Meta.isDefEq] [0.000834s] ✅ List.get (List.concat [] (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0]))) } =?= [Multiset.zero] [Meta.isDefEq] [0.000677s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] =?= [Multiset.zero] [Meta.isDefEq] [0.000294s] ✅ ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] =?= Multiset.zero [Meta.isDefEq] [0.000287s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] =?= Multiset.zero [Meta.isDefEq] [0.000283s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] =?= ↑[] [Meta.isDefEq] [0.000278s] ✅ Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000269s] ✅ (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] =?= [] [Meta.isDefEq] [0.000261s] ✅ instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) =?= [] [Meta.isDefEq] [0.000242s] ✅ Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } =?= [] [Meta.isDefEq] [0.000236s] ✅ List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000371s] ✅ (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))[0] =?= [] [Meta.isDefEq] [0.000351s] ✅ instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) =?= [] [Meta.isDefEq] [0.000331s] ✅ Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } =?= [] [Meta.isDefEq] [0.000313s] ✅ List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList [])).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.map Multiset.ofList []))) } =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Multiset Unit =?= Multiset Unit [Meta.isDefEq] [0.000000s] ✅ List (Multiset Unit) =?= List (Multiset Unit) [Meta.isDefEq] [0.000023s] ✅ List.map Multiset.ofList [] =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset Unit) =?= Multiset (Multiset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Multiset (Multiset Unit)) =?= List (Multiset (Multiset Unit)) [Meta.isDefEq] [0.000000s] ✅ Multiset (Multiset (Multiset Unit)) =?= Multiset (Multiset (Multiset Unit)) mwe.lean:15:0: warning: declaration uses 'sorry' [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= ?m.58075 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.58075 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58035 =?= Type [Meta.isDefEq] [0.000010s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000012s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000016s] ✅ Finset Unit =?= Finset ?m.58042 [Meta.isDefEq] [0.000006s] ✅ Unit =?= ?m.58042 [Meta.isDefEq] Unit [nonassignable] =?= ?m.58042 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58041 =?= Type [Meta.isDefEq] [0.000017s] ✅ Finset (Finset Unit) =?= Finset ?m.58046 [Meta.isDefEq] [0.000007s] ✅ Finset Unit =?= ?m.58046 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58046 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58043 =?= Type [Meta.isDefEq] [0.000044s] ✅ Finset Unit =?= Finset ?m.58039 [Meta.isDefEq] [0.000015s] ✅ Unit =?= ?m.58039 [Meta.isDefEq] Unit [nonassignable] =?= ?m.58039 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58038 =?= Type [Meta.isDefEq] [0.000006s] ✅ Sort ?u.58036 =?= Type ?u.58037 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58037 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000009s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.58052 [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= ?m.58052 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58052 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58051 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000018s] ✅ Finset (Finset Unit) =?= Finset ?m.58054 [Meta.isDefEq] [0.000014s] ✅ Finset (Finset Unit) =?= Finset ?m.58054 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58054 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58054 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58053 =?= Type [Meta.isDefEq] [0.000011s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000017s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.58056 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58056 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58056 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58055 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000017s] ✅ Finset (Finset Unit) =?= Finset ?m.58058 [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.58058 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58058 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58058 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58057 =?= Type [Meta.isDefEq] [0.000011s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000008s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000016s] ✅ Finset Unit =?= Finset ?m.58060 [Meta.isDefEq] [0.000013s] ✅ Finset Unit =?= Finset ?m.58060 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.58060 [Meta.isDefEq] Unit [nonassignable] =?= ?m.58060 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58059 =?= Type [Meta.isDefEq] [0.000010s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000006s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Finset (Finset Unit) =?= Finset ?m.58062 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58062 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58062 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58061 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58063 =?= Sort ?u.58063 [Meta.isDefEq] [0.000027s] ✅ ¬Finset.empty ∈ Finset.empty =?= ?m.58064 [Meta.isDefEq] ¬Finset.empty ∈ Finset.empty [nonassignable] =?= ?m.58064 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58063 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000024s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000019s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.empty =?= Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000017s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000012s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset.empty ∈ Finset.empty =?= Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000015s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.58068 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58068 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58068 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58067 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Sort ?u.58069 =?= Sort ?u.58069 [Meta.isDefEq] [0.000012s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ?m.58070 [Meta.isDefEq] ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [nonassignable] =?= ?m.58070 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58069 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000020s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000015s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000018s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000013s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000000s] ✅ Sort ?u.58072 =?= Sort ?u.58072 [Meta.isDefEq] [0.000015s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ?m.58073 [Meta.isDefEq] ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [nonassignable] =?= ?m.58073 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58072 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000021s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000017s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000020s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000016s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000002s] ✅ Sort ?u.58047 =?= Type ?u.58048 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58048 =?= Type ?u.58049 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58049 =?= Type ?u.58050 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58050 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [0.000061s] ✅ Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= ?s₁ = ?s₂ [Meta.isDefEq] [0.000024s] ✅ Finset.powerset (Finset.powerset Finset.empty) =?= ?s₁ [Meta.isDefEq] Finset.powerset (Finset.powerset Finset.empty) [nonassignable] =?= ?s₁ [assignable] [Meta.isDefEq] [0.000016s] ✅ Finset ?α =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58078 =?= Type [Meta.isDefEq] [0.000013s] ✅ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= ?s₂ [Meta.isDefEq] Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [nonassignable] =?= ?s₂ [assignable] [Meta.isDefEq] [0.000004s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000004s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000048s] ✅ ?s₁ = ?s₂ =?= Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [0.000019s] ✅ ?s₁ =?= Finset.powerset (Finset.powerset Finset.empty) [Meta.isDefEq] ?s₁ [assignable] =?= Finset.powerset (Finset.powerset Finset.empty) [nonassignable] [Meta.isDefEq] [0.000015s] ✅ Finset ?α =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58087 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?s₂ =?= Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] ?s₂ [assignable] =?= Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [nonassignable] [Meta.isDefEq] [0.000003s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000003s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000013s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq.onFailure] [0.000005s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq] [0.000005s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq] [0.000006s] ❌ Prop =?= {α γ : Type} → [self : Membership α γ] → α → γ → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α γ : Type} → [self : Membership α γ] → α → γ → Prop [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α γ : Type} → [self : Membership α γ] → α → γ → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α γ : Type} → [self : Membership α γ] → α → γ → Prop [Meta.isDefEq] [0.000008s] ❌ Prop =?= Membership (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000003s] ❌ Prop =?= Membership (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Membership α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Membership α (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Membership α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Membership α (Finset α) [Meta.isDefEq] [0.000008s] ❌ Prop =?= Membership (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Membership (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Finset α → Finset (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Finset α → Finset (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Finset α → Finset (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Finset α → Finset (Finset α) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Finset α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Finset α [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Finset α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Finset α [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → [self : EmptyCollection α] → α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [self : EmptyCollection α] → α [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → [self : EmptyCollection α] → α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [self : EmptyCollection α] → α [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → EmptyCollection (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → EmptyCollection (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → EmptyCollection (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → EmptyCollection (Finset α) [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000039s] ✅ Finset.powerset ∅ =?= Finset.powerset ∅ [Meta.isDefEq] [0.000005s] ✅ ?α =?= Unit [Meta.isDefEq] ?α [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58428 =?= Type [Meta.isDefEq] [0.000014s] ✅ ∅ =?= ∅ [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α β : Type} → [self : Singleton α β] → α → β [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α β : Type} → [self : Singleton α β] → α → β [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α β : Type} → [self : Singleton α β] → α → β [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α β : Type} → [self : Singleton α β] → α → β [Meta.isDefEq] [0.000006s] ❌ Prop =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Singleton α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Singleton α (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → Singleton α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → Singleton α (Finset α) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset Unit [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset Unit [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000007s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000099s] ✅ ?s ∈ Finset.powerset ?t =?= a✝ ∈ Finset.powerset {∅} [Meta.isDefEq] [0.000024s] ✅ ?s =?= a✝ [Meta.isDefEq] ?s [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000020s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ ?α =?= Finset Unit [Meta.isDefEq] ?α [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000003s] ✅ Type ?u.58447 =?= Type [Meta.isDefEq] [0.000021s] ✅ Finset.powerset ?t =?= Finset.powerset {∅} [Meta.isDefEq] [0.000010s] ✅ ?t =?= {∅} [Meta.isDefEq] ?t [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000014s] ✅ Finset.instMembershipFinset =?= Finset.instMembershipFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= {α : Type} → [self : HasSubset α] → α → α → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [self : HasSubset α] → α → α → Prop [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → [self : HasSubset α] → α → α → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [self : HasSubset α] → α → α → Prop [Meta.isDefEq] [0.000006s] ❌ Prop =?= HasSubset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= HasSubset (Finset (Finset Unit)) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → HasSubset (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → HasSubset (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → HasSubset (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → HasSubset (Finset α) [Meta.isDefEq] [0.000005s] ❌ Prop =?= HasSubset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= HasSubset (Finset (Finset Unit)) [Meta.isDefEq] [0.000077s] ❌ ?s ⊆ ?s =?= a✝ ⊆ {∅} [Meta.isDefEq] [0.000022s] ✅ ?s =?= a✝ [Meta.isDefEq] ?s [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000018s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000013s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ ?α =?= Finset Unit [Meta.isDefEq] ?α [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58473 =?= Type [Meta.isDefEq] [0.000012s] ❌ a✝ =?= {∅} [Meta.isDefEq] [0.000008s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000013s] ❌ ?s ⊆ ?s =?= a✝ ⊆ {∅} [Meta.isDefEq.stuckMVar] found stuck MVar ?s : Finset ?α [Meta.isDefEq.onFailure] [0.000005s] ❌ ?s ⊆ ?s =?= a✝ ⊆ {∅} [Meta.isDefEq.stuckMVar] found stuck MVar ?s : Finset ?α [Meta.isDefEq] [0.000084s] ✅ ?s ⊆ {?a} =?= a✝ ⊆ {∅} [Meta.isDefEq] [0.000020s] ✅ ?s =?= a✝ [Meta.isDefEq] ?s [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000017s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000013s] ✅ Finset ?α =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset Unit [Meta.isDefEq] ?α [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58485 =?= Type [Meta.isDefEq] [0.000023s] ✅ {?a} =?= {∅} [Meta.isDefEq] [0.000005s] ✅ ?a =?= ∅ [Meta.isDefEq] ?a [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000012s] ✅ Finset.instHasSubsetFinset =?= Finset.instHasSubsetFinset [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq] [0.000004s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Prop → Prop → Prop [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → α → α → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → α → α → Prop [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → α → α → Prop [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → α → α → Prop [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000044s] ❌ ?a = ?a =?= a✝ = ∅ [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58508 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?a =?= a✝ [Meta.isDefEq] ?a [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000012s] ❌ a✝ =?= ∅ [Meta.isDefEq] [0.000008s] ❌ a✝ =?= ∅ [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ =?= ∅ [Meta.isDefEq.onFailure] [0.000004s] ❌ ?a = ?a =?= a✝ = ∅ [Meta.isDefEq.onFailure] [0.000002s] ❌ ?a = ?a =?= a✝ = ∅ [Meta.isDefEq] [0.000033s] ✅ ?x = ?y =?= a✝ = ∅ [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58514 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?x =?= a✝ [Meta.isDefEq] ?x [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ ?y =?= ∅ [Meta.isDefEq] ?y [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000226s] ❌ Subsingleton (Finset (Finset Unit)) [Meta.synthInstance] [0.000009s] new goal Subsingleton (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@IsEmpty.instSubsingleton, @Unique.instSubsingleton, instSubsingleton] [Meta.synthInstance] [0.000038s] ❌ apply instSubsingleton to Subsingleton (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000030s] ❌ Subsingleton (Finset (Finset Unit)) ≟ Subsingleton ?m.58525 [Meta.isDefEq] [0.000028s] ❌ Subsingleton (Finset (Finset Unit)) =?= Subsingleton ?m.58525 [Meta.isDefEq] [0.000007s] ❌ Finset (Finset Unit) =?= ?m.58525 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58525 [assignable] [Meta.isDefEq] [0.000000s] ❌ Prop =?= Type [Meta.isDefEq.onFailure] [0.000004s] ❌ Subsingleton (Finset (Finset Unit)) =?= Subsingleton ?m.58525 [Meta.isDefEq.onFailure] [0.000002s] ❌ Subsingleton (Finset (Finset Unit)) =?= Subsingleton ?m.58525 [Meta.synthInstance] [0.000050s] ✅ apply @Unique.instSubsingleton to Subsingleton (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000025s] ✅ Subsingleton (Finset (Finset Unit)) ≟ Subsingleton (Finset (Finset Unit)) [Meta.isDefEq] [0.000013s] ✅ Subsingleton (Finset (Finset Unit)) =?= Subsingleton ?m.58527 [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= ?m.58527 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58527 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58524 =?= Type [Meta.isDefEq] [0.000008s] ✅ ?m.58522 =?= Unique.instSubsingleton [Meta.isDefEq] ?m.58522 [assignable] =?= Unique.instSubsingleton [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Subsingleton (Finset (Finset Unit)) =?= Subsingleton (Finset (Finset Unit)) [Meta.synthInstance] [0.000010s] new goal Unique (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instUniqueFinset] [Meta.synthInstance] [0.000069s] ✅ apply @Finset.instUniqueFinset to Unique (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000046s] ✅ Unique (Finset (Finset Unit)) ≟ Unique (Finset (Finset Unit)) [Meta.isDefEq] [0.000026s] ✅ Unique (Finset (Finset Unit)) =?= Unique (Finset ?m.58530) [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.58530 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58530 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58530 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58529 =?= Type [Meta.isDefEq] [0.000016s] ✅ ?m.58528 =?= Finset.instUniqueFinset [Meta.isDefEq] ?m.58528 [assignable] =?= Finset.instUniqueFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ Unique (Finset (Finset Unit)) =?= Unique (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000009s] no instances for IsEmpty (Finset Unit) [Meta.synthInstance.instances] #[] [Meta.synthInstance] [0.000042s] ✅ apply @IsEmpty.instSubsingleton to Subsingleton (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000024s] ✅ Subsingleton (Finset (Finset Unit)) ≟ Subsingleton (Finset (Finset Unit)) [Meta.isDefEq] [0.000011s] ✅ Subsingleton (Finset (Finset Unit)) =?= Subsingleton ?m.58535 [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= ?m.58535 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58535 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58523 =?= Type [Meta.isDefEq] [0.000010s] ✅ ?m.58522 =?= IsEmpty.instSubsingleton [Meta.isDefEq] ?m.58522 [assignable] =?= IsEmpty.instSubsingleton [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Subsingleton (Finset (Finset Unit)) =?= Subsingleton (Finset (Finset Unit)) [Meta.synthInstance] [0.000005s] no instances for IsEmpty (Finset (Finset Unit)) [Meta.synthInstance.instances] #[] [Meta.isDefEq] [0.000041s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq] [0.000004s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58537 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?a =?= a✝ [Meta.isDefEq] ?a [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ❌ a✝ =?= {∅} [Meta.isDefEq] [0.000007s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq] [0.000028s] ✅ ?x = ?y =?= a✝ = {∅} [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58543 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?x =?= a✝ [Meta.isDefEq] ?x [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ ?y =?= {∅} [Meta.isDefEq] ?y [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000004s] ❌ Subsingleton (Finset (Finset Unit)) [Meta.synthInstance] result (cached) [Meta.isDefEq] [0.000056s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000005s] ✅ ?p =?= a✝ = ∅ [Meta.isDefEq] ?p [assignable] =?= a✝ = ∅ [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000036s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000031s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000001s] ✅ a✝ =?= a✝ [Meta.isDefEq] [0.000019s] ❌ ∅ =?= {∅} [Meta.isDefEq] [0.000003s] ❌ @EmptyCollection.emptyCollection =?= @singleton [Meta.isDefEq.onFailure] [0.000003s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → (a : α) → (s : Finset α) → ¬a ∈ s → Finset α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → (a : α) → (s : Finset α) → ¬a ∈ s → Finset α [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → (a : α) → (s : Finset α) → ¬a ∈ s → Finset α [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → (a : α) → (s : Finset α) → ¬a ∈ s → Finset α [Meta.isDefEq] [0.000080s] ✅ Finset.cons ?a ?s ?h =?= Finset.cons ∅ ∅ (_ : ¬∅ ∈ ∅) [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset Unit [Meta.isDefEq] ?α [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58589 =?= Type [Meta.isDefEq] [0.000006s] ✅ ?a =?= ∅ [Meta.isDefEq] ?a [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000010s] ✅ ?s =?= ∅ [Meta.isDefEq] ?s [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000023s] ✅ ?h =?= (let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] ?h [assignable] =?= (let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty [nonassignable] [Meta.isDefEq] [0.000012s] ✅ ¬∅ ∈ ∅ =?= ¬∅ ∈ ∅ [Meta.isDefEq] [0.000000s] ✅ ∅ ∈ ∅ =?= ∅ ∈ ∅ [Meta.synthInstance] [0.000641s] ✅ DecidableEq (Finset Unit) [Meta.synthInstance] [0.000018s] new goal (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000197s] ✅ apply @Finset.decidableEq to (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.tryResolve] [0.000128s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000097s] ✅ Decidable (a = b) =?= Decidable (?m.58615 a b = ?m.58616 a b) [Meta.isDefEq] [0.000083s] ✅ a = b =?= ?m.58615 a b = ?m.58616 a b [Meta.isDefEq] [0.000043s] ✅ a =?= ?m.58615 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58615 a b [assignable] [Meta.isDefEq] [0.000031s] ✅ (a b : Finset Unit) → Finset (?m.58613 a b) =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000025s] ✅ Finset (?m.58613 a b) =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ ?m.58613 a b =?= Unit [Meta.isDefEq] ?m.58613 a b [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset Unit → Finset Unit → Type ?u.58610 =?= Finset Unit → Finset Unit → Type [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000001s] ✅ Type ?u.58610 =?= Type [Meta.isDefEq] [0.000019s] ✅ b =?= ?m.58616 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58616 a b [assignable] [Meta.isDefEq] [0.000008s] ✅ Finset Unit → Finset Unit → Finset Unit =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000020s] ✅ ?m.58604 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58604 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance] [0.000018s] new goal DecidableEq Unit [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, instDecidableEqPUnit] [Meta.synthInstance] [0.000171s] ✅ apply instDecidableEqPUnit to DecidableEq Unit [Meta.synthInstance.tryResolve] [0.000145s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000084s] ✅ Decidable (a = b) =?= Decidable (?m.58650 a b = ?m.58651 a b) [Meta.isDefEq] [0.000075s] ✅ a = b =?= ?m.58650 a b = ?m.58651 a b [Meta.isDefEq] [0.000034s] ✅ a =?= ?m.58650 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58650 a b [assignable] [Meta.isDefEq] [0.000019s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000011s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000027s] ✅ b =?= ?m.58651 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58651 a b [assignable] [Meta.isDefEq] [0.000013s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000002s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000001s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000053s] ✅ ?m.58641 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58641 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000034s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000027s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000018s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000012s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000033s] ✅ ?m.58641 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58641 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000030s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000024s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000011s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000037s] propagating (a b : Unit) → Decidable (a = b) to subgoal DecidableEq Unit of (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] size: 1 [Meta.isDefEq] [0.000043s] ✅ ?m.58614 =?= fun a b a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58614 [assignable] =?= fun a b a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000039s] ✅ Finset Unit → Finset Unit → DecidableEq Unit =?= Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000034s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000026s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000013s] propagating Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) to subgoal Finset Unit → Finset Unit → DecidableEq Unit of (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] size: 2 [Meta.synthInstance] result fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000005s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000035s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000029s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000020s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000014s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ ?inst✝ =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?inst✝ [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000007s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α γ : Type} → [self : Insert α γ] → α → γ → γ [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α γ : Type} → [self : Insert α γ] → α → γ → γ [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α γ : Type} → [self : Insert α γ] → α → γ → γ [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α γ : Type} → [self : Insert α γ] → α → γ → γ [Meta.isDefEq] [0.000006s] ❌ Prop =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → Insert α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → Insert α (Finset α) [Meta.isDefEq] [0.000005s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → Insert α (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → Insert α (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → DecidableEq (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → DecidableEq (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → DecidableEq (Finset α) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= {α : Type} → [inst : DecidableEq α] → DecidableEq (Finset α) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000009s] ❌ Prop =?= DecidableEq PUnit [Meta.isDefEq] [0.000003s] ❌ Prop =?= (a b : PUnit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : PUnit) → Decidable (a = b) [Meta.isDefEq] [0.000008s] ❌ Prop =?= DecidableEq PUnit [Meta.isDefEq] [0.000003s] ❌ Prop =?= (a b : PUnit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : PUnit) → Decidable (a = b) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000096s] ✅ insert ?x ∅ =?= insert ∅ ∅ [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset Unit [Meta.isDefEq] ?α [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58767 =?= Type [Meta.isDefEq] [0.000003s] ✅ ?β =?= Finset (Finset Unit) [Meta.isDefEq] ?β [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58768 =?= Type [Meta.isDefEq] [0.000029s] ✅ ?inst✝ =?= Finset.instInsertFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instInsertFinset [nonassignable] [Meta.isDefEq] [0.000024s] ✅ Insert (Finset Unit) (Finset (Finset Unit)) =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ✅ ?x =?= ∅ [Meta.isDefEq] ?x [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000025s] ✅ ∅ =?= ∅ [Meta.isDefEq] [0.000012s] ✅ ?inst✝ =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000067s] ✅ EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance] [0.000006s] new goal EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000042s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000031s] ✅ EmptyCollection (Finset (Finset Unit)) ≟ EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000021s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset ?m.58786) [Meta.isDefEq] [0.000012s] ✅ Finset (Finset Unit) =?= Finset ?m.58786 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58786 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58786 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58785 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?m.58784 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58784 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.synthInstance] [0.000671s] ✅ Insert (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance] [0.000008s] new goal Insert _tc.0 (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instInsertFinset] [Meta.synthInstance] [0.000094s] ✅ apply @Finset.instInsertFinset to Insert (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000066s] ✅ Insert (Finset Unit) (Finset (Finset Unit)) ≟ Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000048s] ✅ Insert ?m.58788 (Finset (Finset Unit)) =?= Insert ?m.58791 (Finset ?m.58791) [Meta.isDefEq] [0.000013s] ✅ ?m.58788 =?= ?m.58791 [Meta.isDefEq] ?m.58788 [assignable] =?= ?m.58791 [assignable] [Meta.isDefEq] [0.000007s] ✅ outParam Type =?= Type ?u.58790 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type ?u.58790 [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.58791 [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= ?m.58791 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58791 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000013s] ✅ ?m.58789 =?= Finset.instInsertFinset [Meta.isDefEq] ?m.58789 [assignable] =?= Finset.instInsertFinset [nonassignable] [Meta.isDefEq] [0.000008s] ✅ Insert (Finset Unit) (Finset (Finset Unit)) =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000015s] new goal DecidableEq (Finset Unit) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000181s] ✅ apply @Finset.decidableEq to DecidableEq (Finset Unit) [Meta.synthInstance.tryResolve] [0.000114s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000079s] ✅ Decidable (a = b) =?= Decidable (?m.58805 a b = ?m.58806 a b) [Meta.isDefEq] [0.000068s] ✅ a = b =?= ?m.58805 a b = ?m.58806 a b [Meta.isDefEq] [0.000038s] ✅ a =?= ?m.58805 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58805 a b [assignable] [Meta.isDefEq] [0.000029s] ✅ (a b : Finset Unit) → Finset (?m.58803 a b) =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000024s] ✅ Finset (?m.58803 a b) =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ ?m.58803 a b =?= Unit [Meta.isDefEq] ?m.58803 a b [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset Unit → Finset Unit → Type ?u.58800 =?= Finset Unit → Finset Unit → Type [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000001s] ✅ Type ?u.58800 =?= Type [Meta.isDefEq] [0.000014s] ✅ b =?= ?m.58806 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58806 a b [assignable] [Meta.isDefEq] [0.000008s] ✅ Finset Unit → Finset Unit → Finset Unit =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000026s] ✅ ?m.58792 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58792 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000010s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance] [0.000016s] new goal DecidableEq Unit [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, instDecidableEqPUnit] [Meta.synthInstance] [0.000139s] ✅ apply instDecidableEqPUnit to DecidableEq Unit [Meta.synthInstance.tryResolve] [0.000115s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000068s] ✅ Decidable (a = b) =?= Decidable (?m.58830 a b = ?m.58831 a b) [Meta.isDefEq] [0.000059s] ✅ a = b =?= ?m.58830 a b = ?m.58831 a b [Meta.isDefEq] [0.000024s] ✅ a =?= ?m.58830 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58830 a b [assignable] [Meta.isDefEq] [0.000018s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000009s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000019s] ✅ b =?= ?m.58831 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58831 a b [assignable] [Meta.isDefEq] [0.000014s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000005s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000002s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000039s] ✅ ?m.58821 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58821 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000035s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000027s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000017s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000013s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000005s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000036s] ✅ ?m.58821 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58821 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000032s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000027s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000022s] propagating (a b : Unit) → Decidable (a = b) to subgoal DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 1 [Meta.isDefEq] [0.000043s] ✅ ?m.58804 =?= fun a b a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58804 [assignable] =?= fun a b a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000039s] ✅ Finset Unit → Finset Unit → DecidableEq Unit =?= Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000034s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000026s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000017s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000013s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000005s] propagating Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) to subgoal Finset Unit → Finset Unit → DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 2 [Meta.isDefEq] [0.000012s] ✅ ?m.58792 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58792 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000004s] propagating (a b : Finset Unit) → Decidable (a = b) to subgoal DecidableEq (Finset Unit) of Insert (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.resume] size: 3 [Meta.synthInstance] result Finset.instInsertFinset [Meta.isDefEq] [0.000000s] ✅ Insert (Finset Unit) (Finset (Finset Unit)) =?= Insert (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000027s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000023s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000002s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.synthInstance] [0.000112s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance] [0.000008s] new goal Singleton _tc.0 (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instSingletonFinset] [Meta.synthInstance] [0.000081s] ✅ apply @Finset.instSingletonFinset to Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000070s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) ≟ Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000046s] ✅ Singleton ?m.58855 (Finset (Finset Unit)) =?= Singleton ?m.58858 (Finset ?m.58858) [Meta.isDefEq] [0.000015s] ✅ ?m.58855 =?= ?m.58858 [Meta.isDefEq] ?m.58855 [assignable] =?= ?m.58858 [assignable] [Meta.isDefEq] [0.000007s] ✅ outParam Type =?= Type ?u.58857 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type ?u.58857 [Meta.isDefEq] [0.000010s] ✅ Finset (Finset Unit) =?= Finset ?m.58858 [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= ?m.58858 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58858 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000021s] ✅ ?m.58856 =?= Finset.instSingletonFinset [Meta.isDefEq] ?m.58856 [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000017s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] result Finset.instSingletonFinset [Meta.isDefEq] [0.000001s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000014s] ✅ ?inst✝ =?= Finset.instSingletonFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000011s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000280s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance] [0.000010s] new goal IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset] [Meta.synthInstance] [0.000165s] ✅ apply @Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset to IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000149s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) ≟ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000130s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) =?= IsLawfulSingleton ?m.58865 (Finset ?m.58865) [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58865 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58865 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58864 =?= Type [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000054s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000022s] ✅ fun a b => Finset.decidableEq a b =?= fun a b => ?m.58866 a b [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000015s] ✅ Finset.decidableEq a b =?= ?m.58866 a b [Meta.isDefEq] Finset.decidableEq a b [nonassignable] =?= ?m.58866 a b [assignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000012s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ ?m.58863 =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] ?m.58863 [assignable] =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [nonassignable] [Meta.isDefEq] [0.000001s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) =?= IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.synthInstance] result Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] [0.000001s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) =?= IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000003s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000030s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000025s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000035s] ✅ ?self =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] ?self [assignable] =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [nonassignable] [Meta.isDefEq] [0.000029s] ✅ IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) =?= IsLawfulSingleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000000s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000073s] ✅ Finset.cons ?a ?s ?h =?= Finset.cons {∅} ∅ (_ : ¬{∅} ∈ ∅) [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58895 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?a =?= {∅} [Meta.isDefEq] ?a [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000011s] ✅ ?s =?= ∅ [Meta.isDefEq] ?s [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ ?h =?= Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] ?h [assignable] =?= Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [nonassignable] [Meta.isDefEq] [0.000011s] ✅ ¬{∅} ∈ ∅ =?= ¬{∅} ∈ ∅ [Meta.isDefEq] [0.000000s] ✅ {∅} ∈ ∅ =?= {∅} ∈ ∅ [Meta.synthInstance] [0.000786s] ✅ DecidableEq (Finset (Finset Unit)) [Meta.synthInstance] [0.000010s] new goal (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000160s] ✅ apply @Finset.decidableEq to (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance.tryResolve] [0.000107s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000082s] ✅ Decidable (a = b) =?= Decidable (?m.58921 a b = ?m.58922 a b) [Meta.isDefEq] [0.000072s] ✅ a = b =?= ?m.58921 a b = ?m.58922 a b [Meta.isDefEq] [0.000042s] ✅ a =?= ?m.58921 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58921 a b [assignable] [Meta.isDefEq] [0.000032s] ✅ (a b : Finset (Finset Unit)) → Finset (?m.58919 a b) =?= Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000027s] ✅ Finset (?m.58919 a b) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000015s] ✅ ?m.58919 a b =?= Finset Unit [Meta.isDefEq] ?m.58919 a b [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → Type ?u.58916 =?= Finset (Finset Unit) → Finset (Finset Unit) → Type [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000001s] ✅ Type ?u.58916 =?= Type [Meta.isDefEq] [0.000015s] ✅ b =?= ?m.58922 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58922 a b [assignable] [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) =?= Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000003s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ ?m.58910 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58910 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance] [0.000013s] new goal DecidableEq (Finset Unit) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000164s] ✅ apply @Finset.decidableEq to DecidableEq (Finset Unit) [Meta.synthInstance.tryResolve] [0.000100s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000073s] ✅ Decidable (a = b) =?= Decidable (?m.58954 a b = ?m.58955 a b) [Meta.isDefEq] [0.000062s] ✅ a = b =?= ?m.58954 a b = ?m.58955 a b [Meta.isDefEq] [0.000032s] ✅ a =?= ?m.58954 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58954 a b [assignable] [Meta.isDefEq] [0.000026s] ✅ (a b : Finset Unit) → Finset (?m.58952 a b) =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000021s] ✅ Finset (?m.58952 a b) =?= Finset Unit [Meta.isDefEq] [0.000010s] ✅ ?m.58952 a b =?= Unit [Meta.isDefEq] ?m.58952 a b [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset Unit → Finset Unit → Type ?u.58949 =?= Finset Unit → Finset Unit → Type [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000001s] ✅ Type ?u.58949 =?= Type [Meta.isDefEq] [0.000015s] ✅ b =?= ?m.58955 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58955 a b [assignable] [Meta.isDefEq] [0.000010s] ✅ Finset Unit → Finset Unit → Finset Unit =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000020s] ✅ ?m.58943 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58943 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000006s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance] [0.000016s] new goal DecidableEq Unit [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, instDecidableEqPUnit] [Meta.synthInstance] [0.000136s] ✅ apply instDecidableEqPUnit to DecidableEq Unit [Meta.synthInstance.tryResolve] [0.000111s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000066s] ✅ Decidable (a = b) =?= Decidable (?m.58979 a b = ?m.58980 a b) [Meta.isDefEq] [0.000057s] ✅ a = b =?= ?m.58979 a b = ?m.58980 a b [Meta.isDefEq] [0.000027s] ✅ a =?= ?m.58979 a b [Meta.isDefEq] a [nonassignable] =?= ?m.58979 a b [assignable] [Meta.isDefEq] [0.000021s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000010s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000018s] ✅ b =?= ?m.58980 a b [Meta.isDefEq] b [nonassignable] =?= ?m.58980 a b [assignable] [Meta.isDefEq] [0.000010s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000002s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000001s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000039s] ✅ ?m.58970 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58970 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000034s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000027s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000017s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000013s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000032s] ✅ ?m.58970 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58970 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000029s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000024s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000011s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000023s] propagating (a b : Unit) → Decidable (a = b) to subgoal DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 1 [Meta.isDefEq] [0.000039s] ✅ ?m.58953 =?= fun a b a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.58953 [assignable] =?= fun a b a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000035s] ✅ Finset Unit → Finset Unit → DecidableEq Unit =?= Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000031s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000023s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000005s] propagating Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) to subgoal Finset Unit → Finset Unit → DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 2 [Meta.isDefEq] [0.000011s] ✅ ?m.58943 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58943 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000007s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000029s] propagating (a b : Finset Unit) → Decidable (a = b) to subgoal DecidableEq (Finset Unit) of (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance.resume] size: 3 [Meta.isDefEq] [0.000016s] ✅ ?m.58920 =?= fun a b a b => Finset.decidableEq a b [Meta.isDefEq] ?m.58920 [assignable] =?= fun a b a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → DecidableEq (Finset Unit) =?= Finset (Finset Unit) → Finset (Finset Unit) → (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000011s] propagating Finset (Finset Unit) → Finset (Finset Unit) → (a b : Finset Unit) → Decidable (a = b) to subgoal Finset (Finset Unit) → Finset (Finset Unit) → DecidableEq (Finset Unit) of (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance.resume] size: 6 [Meta.synthInstance] result fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000005s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000028s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000023s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000011s] ✅ ?inst✝ =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?inst✝ [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000004s] ❌ Prop =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000082s] ✅ insert ?x ∅ =?= insert {∅} ∅ [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59023 =?= Type [Meta.isDefEq] [0.000004s] ✅ ?β =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] ?β [assignable] =?= Finset (Finset (Finset Unit)) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59024 =?= Type [Meta.isDefEq] [0.000013s] ✅ ?inst✝ =?= Finset.instInsertFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instInsertFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ✅ ?x =?= {∅} [Meta.isDefEq] ?x [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000026s] ✅ ∅ =?= ∅ [Meta.isDefEq] [0.000011s] ✅ ?inst✝ =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000007s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.synthInstance] [0.000078s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance] [0.000006s] new goal EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000038s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance.tryResolve] [0.000027s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) ≟ EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000019s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset ?m.59039) [Meta.isDefEq] [0.000011s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59039 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.59039 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59039 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59038 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?m.59037 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.59037 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.synthInstance] [0.000887s] ✅ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance] [0.000007s] new goal Insert _tc.0 (Finset (Finset (Finset Unit))) [Meta.synthInstance.instances] #[@Finset.instInsertFinset] [Meta.synthInstance] [0.000083s] ✅ apply @Finset.instInsertFinset to Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance.tryResolve] [0.000055s] ✅ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) ≟ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000035s] ✅ Insert ?m.59040 (Finset (Finset (Finset Unit))) =?= Insert ?m.59043 (Finset ?m.59043) [Meta.isDefEq] [0.000013s] ✅ ?m.59040 =?= ?m.59043 [Meta.isDefEq] ?m.59040 [assignable] =?= ?m.59043 [assignable] [Meta.isDefEq] [0.000008s] ✅ outParam Type =?= Type ?u.59042 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type ?u.59042 [Meta.isDefEq] [0.000010s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59043 [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= ?m.59043 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59043 [assignable] [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000015s] ✅ ?m.59041 =?= Finset.instInsertFinset [Meta.isDefEq] ?m.59041 [assignable] =?= Finset.instInsertFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.synthInstance] [0.000014s] new goal DecidableEq (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000165s] ✅ apply @Finset.decidableEq to DecidableEq (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000108s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000075s] ✅ Decidable (a = b) =?= Decidable (?m.59055 a b = ?m.59056 a b) [Meta.isDefEq] [0.000064s] ✅ a = b =?= ?m.59055 a b = ?m.59056 a b [Meta.isDefEq] [0.000035s] ✅ a =?= ?m.59055 a b [Meta.isDefEq] a [nonassignable] =?= ?m.59055 a b [assignable] [Meta.isDefEq] [0.000028s] ✅ (a b : Finset (Finset Unit)) → Finset (?m.59053 a b) =?= Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000021s] ✅ Finset (?m.59053 a b) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ ?m.59053 a b =?= Finset Unit [Meta.isDefEq] ?m.59053 a b [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → Type ?u.59050 =?= Finset (Finset Unit) → Finset (Finset Unit) → Type [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000001s] ✅ Type ?u.59050 =?= Type [Meta.isDefEq] [0.000013s] ✅ b =?= ?m.59056 a b [Meta.isDefEq] b [nonassignable] =?= ?m.59056 a b [assignable] [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) =?= Finset (Finset Unit) → Finset (Finset Unit) → Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000003s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000025s] ✅ ?m.59044 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59044 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance] [0.000013s] new goal DecidableEq (Finset Unit) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000164s] ✅ apply @Finset.decidableEq to DecidableEq (Finset Unit) [Meta.synthInstance.tryResolve] [0.000103s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000074s] ✅ Decidable (a = b) =?= Decidable (?m.59082 a b = ?m.59083 a b) [Meta.isDefEq] [0.000059s] ✅ a = b =?= ?m.59082 a b = ?m.59083 a b [Meta.isDefEq] [0.000030s] ✅ a =?= ?m.59082 a b [Meta.isDefEq] a [nonassignable] =?= ?m.59082 a b [assignable] [Meta.isDefEq] [0.000025s] ✅ (a b : Finset Unit) → Finset (?m.59080 a b) =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000020s] ✅ Finset (?m.59080 a b) =?= Finset Unit [Meta.isDefEq] [0.000010s] ✅ ?m.59080 a b =?= Unit [Meta.isDefEq] ?m.59080 a b [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset Unit → Finset Unit → Type ?u.59077 =?= Finset Unit → Finset Unit → Type [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000001s] ✅ Type ?u.59077 =?= Type [Meta.isDefEq] [0.000013s] ✅ b =?= ?m.59083 a b [Meta.isDefEq] b [nonassignable] =?= ?m.59083 a b [assignable] [Meta.isDefEq] [0.000007s] ✅ Finset Unit → Finset Unit → Finset Unit =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000021s] ✅ ?m.59071 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59071 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000007s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance] [0.000016s] new goal DecidableEq Unit [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, instDecidableEqPUnit] [Meta.synthInstance] [0.000130s] ✅ apply instDecidableEqPUnit to DecidableEq Unit [Meta.synthInstance.tryResolve] [0.000106s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000063s] ✅ Decidable (a = b) =?= Decidable (?m.59107 a b = ?m.59108 a b) [Meta.isDefEq] [0.000054s] ✅ a = b =?= ?m.59107 a b = ?m.59108 a b [Meta.isDefEq] [0.000026s] ✅ a =?= ?m.59107 a b [Meta.isDefEq] a [nonassignable] =?= ?m.59107 a b [assignable] [Meta.isDefEq] [0.000021s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000010s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000016s] ✅ b =?= ?m.59108 a b [Meta.isDefEq] b [nonassignable] =?= ?m.59108 a b [assignable] [Meta.isDefEq] [0.000010s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000002s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000001s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000037s] ✅ ?m.59098 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59098 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000032s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000025s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000016s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000012s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000005s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000034s] ✅ ?m.59098 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59098 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000031s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000025s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000016s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000012s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000022s] propagating (a b : Unit) → Decidable (a = b) to subgoal DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 1 [Meta.isDefEq] [0.000043s] ✅ ?m.59081 =?= fun a b a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59081 [assignable] =?= fun a b a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000039s] ✅ Finset Unit → Finset Unit → DecidableEq Unit =?= Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000034s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000026s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000005s] propagating Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) to subgoal Finset Unit → Finset Unit → DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 2 [Meta.isDefEq] [0.000010s] ✅ ?m.59071 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59071 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000007s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000019s] propagating (a b : Finset Unit) → Decidable (a = b) to subgoal DecidableEq (Finset Unit) of DecidableEq (Finset (Finset Unit)) [Meta.synthInstance.resume] size: 3 [Meta.isDefEq] [0.000017s] ✅ ?m.59054 =?= fun a b a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59054 [assignable] =?= fun a b a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) → Finset (Finset Unit) → DecidableEq (Finset Unit) =?= Finset (Finset Unit) → Finset (Finset Unit) → (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000005s] propagating Finset (Finset Unit) → Finset (Finset Unit) → (a b : Finset Unit) → Decidable (a = b) to subgoal Finset (Finset Unit) → Finset (Finset Unit) → DecidableEq (Finset Unit) of DecidableEq (Finset (Finset Unit)) [Meta.synthInstance.resume] size: 6 [Meta.isDefEq] [0.000011s] ✅ ?m.59044 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59044 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000007s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.synthInstance.resume] [0.000004s] propagating (a b : Finset (Finset Unit)) → Decidable (a = b) to subgoal DecidableEq (Finset (Finset Unit)) of Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance.resume] size: 7 [Meta.synthInstance] result Finset.instInsertFinset [Meta.isDefEq] [0.000001s] ✅ Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Insert (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000006s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000028s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000023s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000002s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.synthInstance] [0.000096s] ✅ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance] [0.000007s] new goal Singleton _tc.0 (Finset (Finset (Finset Unit))) [Meta.synthInstance.instances] #[@Finset.instSingletonFinset] [Meta.synthInstance] [0.000065s] ✅ apply @Finset.instSingletonFinset to Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance.tryResolve] [0.000053s] ✅ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) ≟ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000037s] ✅ Singleton ?m.59141 (Finset (Finset (Finset Unit))) =?= Singleton ?m.59144 (Finset ?m.59144) [Meta.isDefEq] [0.000015s] ✅ ?m.59141 =?= ?m.59144 [Meta.isDefEq] ?m.59141 [assignable] =?= ?m.59144 [assignable] [Meta.isDefEq] [0.000010s] ✅ outParam Type =?= Type ?u.59143 [Meta.isDefEq] [0.000003s] ✅ Type =?= Type ?u.59143 [Meta.isDefEq] [0.000011s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59144 [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= ?m.59144 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59144 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000013s] ✅ ?m.59142 =?= Finset.instSingletonFinset [Meta.isDefEq] ?m.59142 [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000008s] ✅ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.synthInstance] result Finset.instSingletonFinset [Meta.isDefEq] [0.000000s] ✅ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000014s] ✅ ?inst✝ =?= Finset.instSingletonFinset [Meta.isDefEq] ?inst✝ [assignable] =?= Finset.instSingletonFinset [nonassignable] [Meta.isDefEq] [0.000010s] ✅ Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.synthInstance] [0.000263s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance] [0.000009s] new goal IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance.instances] #[@Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset] [Meta.synthInstance] [0.000122s] ✅ apply @Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset to IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance.tryResolve] [0.000106s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) ≟ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000091s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= IsLawfulSingleton ?m.59147 (Finset ?m.59147) [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= ?m.59147 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59147 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59146 =?= Type [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000036s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000020s] ✅ fun a b => Finset.decidableEq a b =?= fun a b => ?m.59148 a b [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000015s] ✅ Finset.decidableEq a b =?= ?m.59148 a b [Meta.isDefEq] Finset.decidableEq a b [nonassignable] =?= ?m.59148 a b [assignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000011s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000009s] ✅ ?m.59145 =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] ?m.59145 [assignable] =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [nonassignable] [Meta.isDefEq] [0.000001s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.synthInstance] result Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] [0.000001s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000004s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000003s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000031s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000024s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000022s] ✅ ?self =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [Meta.isDefEq] ?self [assignable] =?= Finset.instIsLawfulSingletonFinsetInstEmptyCollectionFinsetInstInsertFinsetInstSingletonFinset [nonassignable] [Meta.isDefEq] [0.000018s] ✅ IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) =?= IsLawfulSingleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset.instEmptyCollectionFinset =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000000s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ❌ Prop =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Singleton (Finset (Finset Unit)) (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000074s] ✅ Finset.cons ?a ?s ?h =?= Finset.cons ∅ {{∅}} (_ : ¬∅ ∈ {{∅}}) [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59159 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?a =?= ∅ [Meta.isDefEq] ?a [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ ?s =?= {{∅}} [Meta.isDefEq] ?s [assignable] =?= {{∅}} [nonassignable] [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000017s] ✅ ?h =?= (let_fun this := rfl; this) ▸ Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) {∅} (Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅)) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (Finset.cons_eq_insert {∅} ∅ (Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty))) (insert_emptyc_eq {∅}) ▸ sorryAx ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] ?h [assignable] =?= (let_fun this := rfl; this) ▸ Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) {∅} (Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅)) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (Finset.cons_eq_insert {∅} ∅ (Eq.trans (Eq.trans ((fun {α} a a_1 e_a => Eq.rec (motive := fun a_2 e_a => ∀ (s s_1 : Finset α) (e_s : s = s_1) (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a_2 s_1 (e_a ▸ e_s ▸ h)) (fun s s_1 e_s => Eq.rec (motive := fun s_2 e_s => ∀ (h : ¬a ∈ s), Finset.cons a s h = Finset.cons a s_2 (Eq.refl a ▸ e_s ▸ h)) (fun h => Eq.refl (Finset.cons a s h)) e_s) e_a) Finset.empty ∅ (let_fun this := rfl; this) Finset.empty ∅ (let_fun this := rfl; this) (sorryAx ¬Finset.empty ∈ Finset.empty)) (Finset.cons_eq_insert ∅ ∅ ((let_fun this := rfl; this) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.empty ∈ Finset.empty))) (insert_emptyc_eq ∅) ▸ (let_fun this := rfl; this) ▸ sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty))) (insert_emptyc_eq {∅}) ▸ sorryAx ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [nonassignable] [Meta.isDefEq] [0.000011s] ✅ ¬∅ ∈ {{∅}} =?= ¬∅ ∈ {{∅}} [Meta.isDefEq] [0.000000s] ✅ ∅ ∈ {{∅}} =?= ∅ ∈ {{∅}} [Meta.synthInstance] [0.000013s] ✅ DecidableEq (Finset (Finset Unit)) [Meta.synthInstance] result fun a b => Finset.decidableEq a b (cached) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000011s] ✅ ?inst✝ =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?inst✝ [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000007s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000091s] ✅ insert ?a ?s =?= {∅, {∅}} [Meta.isDefEq] [0.000007s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59172 =?= Type [Meta.isDefEq] [0.000004s] ✅ ?a =?= ∅ [Meta.isDefEq] ?a [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ ?s =?= {{∅}} [Meta.isDefEq] ?s [assignable] =?= {{∅}} [nonassignable] [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000003s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000035s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000020s] ✅ fun a b => ?inst✝ a b =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000015s] ✅ ?inst✝ a b =?= Finset.decidableEq a b [Meta.isDefEq] ?inst✝ a b [assignable] =?= Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000012s] ✅ DecidableEq (Finset (Finset Unit)) [Meta.synthInstance] result fun a b => Finset.decidableEq a b (cached) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000002s] ✅ fun a b => Finset.decidableEq a b =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000006s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000007s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000001s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000081s] ✅ ?b ∈ {?a} =?= ∅ ∈ {{∅}} [Meta.isDefEq] [0.000004s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59199 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?b =?= ∅ [Meta.isDefEq] ?b [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000024s] ✅ {?a} =?= {{∅}} [Meta.isDefEq] [0.000005s] ✅ ?a =?= {∅} [Meta.isDefEq] ?a [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset.instMembershipFinset =?= Finset.instMembershipFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.synthInstance] [0.000741s] ✅ Decidable (∅ = {∅}) [Meta.synthInstance] [0.000013s] new goal Decidable (∅ = {∅}) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000105s] ✅ apply @Finset.decidableEq to Decidable (∅ = {∅}) [Meta.synthInstance.tryResolve] [0.000069s] ✅ Decidable (∅ = {∅}) ≟ Decidable (∅ = {∅}) [Meta.isDefEq] [0.000051s] ✅ Decidable (∅ = {∅}) =?= Decidable (?m.59216 = ?m.59217) [Meta.isDefEq] [0.000042s] ✅ ∅ = {∅} =?= ?m.59216 = ?m.59217 [Meta.isDefEq] [0.000020s] ✅ ∅ =?= ?m.59216 [Meta.isDefEq] ∅ [nonassignable] =?= ?m.59216 [assignable] [Meta.isDefEq] [0.000016s] ✅ Finset ?m.59214 =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ ?m.59214 =?= Finset Unit [Meta.isDefEq] ?m.59214 [assignable] =?= Finset Unit [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59213 =?= Type [Meta.isDefEq] [0.000007s] ✅ {∅} =?= ?m.59217 [Meta.isDefEq] {∅} [nonassignable] =?= ?m.59217 [assignable] [Meta.isDefEq] [0.000003s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000013s] ✅ ?m.59209 =?= Finset.decidableEq ∅ {∅} [Meta.isDefEq] ?m.59209 [assignable] =?= Finset.decidableEq ∅ {∅} [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Decidable (∅ = {∅}) =?= Decidable (∅ = {∅}) [Meta.synthInstance] [0.000016s] new goal DecidableEq (Finset Unit) [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, @Finset.decidableEq] [Meta.synthInstance] [0.000177s] ✅ apply @Finset.decidableEq to DecidableEq (Finset Unit) [Meta.synthInstance.tryResolve] [0.000110s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000078s] ✅ Decidable (a = b) =?= Decidable (?m.59229 a b = ?m.59230 a b) [Meta.isDefEq] [0.000066s] ✅ a = b =?= ?m.59229 a b = ?m.59230 a b [Meta.isDefEq] [0.000034s] ✅ a =?= ?m.59229 a b [Meta.isDefEq] a [nonassignable] =?= ?m.59229 a b [assignable] [Meta.isDefEq] [0.000028s] ✅ (a b : Finset Unit) → Finset (?m.59227 a b) =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000023s] ✅ Finset (?m.59227 a b) =?= Finset Unit [Meta.isDefEq] [0.000012s] ✅ ?m.59227 a b =?= Unit [Meta.isDefEq] ?m.59227 a b [assignable] =?= Unit [nonassignable] [Meta.isDefEq] [0.000007s] ✅ Finset Unit → Finset Unit → Type ?u.59224 =?= Finset Unit → Finset Unit → Type [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Type ?u.59224 =?= Type [Meta.isDefEq] [0.000014s] ✅ b =?= ?m.59230 a b [Meta.isDefEq] b [nonassignable] =?= ?m.59230 a b [assignable] [Meta.isDefEq] [0.000008s] ✅ Finset Unit → Finset Unit → Finset Unit =?= Finset Unit → Finset Unit → Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000003s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000023s] ✅ ?m.59215 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59215 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance] [0.000016s] new goal DecidableEq Unit [Meta.synthInstance.instances] #[@decidableEq_of_subsingleton, @decidableEq_of_decidableLE, @instDecidableEq, instDecidableEqPUnit] [Meta.synthInstance] [0.000140s] ✅ apply instDecidableEqPUnit to DecidableEq Unit [Meta.synthInstance.tryResolve] [0.000113s] ✅ Decidable (a = b) ≟ Decidable (a = b) [Meta.isDefEq] [0.000069s] ✅ Decidable (a = b) =?= Decidable (?m.59254 a b = ?m.59255 a b) [Meta.isDefEq] [0.000060s] ✅ a = b =?= ?m.59254 a b = ?m.59255 a b [Meta.isDefEq] [0.000025s] ✅ a =?= ?m.59254 a b [Meta.isDefEq] a [nonassignable] =?= ?m.59254 a b [assignable] [Meta.isDefEq] [0.000019s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000010s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000004s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000021s] ✅ b =?= ?m.59255 a b [Meta.isDefEq] b [nonassignable] =?= ?m.59255 a b [assignable] [Meta.isDefEq] [0.000015s] ✅ Unit → Unit → PUnit =?= Unit → Unit → Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000005s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000002s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000037s] ✅ ?m.59245 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59245 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000032s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000024s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000011s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000031s] ✅ ?m.59245 =?= fun a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59245 [assignable] =?= fun a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000028s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000023s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000023s] propagating (a b : Unit) → Decidable (a = b) to subgoal DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 1 [Meta.isDefEq] [0.000042s] ✅ ?m.59228 =?= fun a b a b => instDecidableEqPUnit a b [Meta.isDefEq] ?m.59228 [assignable] =?= fun a b a b => instDecidableEqPUnit a b [nonassignable] [Meta.isDefEq] [0.000038s] ✅ Finset Unit → Finset Unit → DecidableEq Unit =?= Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000031s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000024s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000015s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000011s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000004s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.synthInstance.resume] [0.000005s] propagating Finset Unit → Finset Unit → (a b : Unit) → Decidable (a = b) to subgoal Finset Unit → Finset Unit → DecidableEq Unit of DecidableEq (Finset Unit) [Meta.synthInstance.resume] size: 2 [Meta.isDefEq] [0.000012s] ✅ ?m.59215 =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] ?m.59215 [assignable] =?= fun a b => Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000008s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.synthInstance.resume] [0.000009s] propagating (a b : Finset Unit) → Decidable (a = b) to subgoal DecidableEq (Finset Unit) of Decidable (∅ = {∅}) [Meta.synthInstance.resume] size: 3 [Meta.synthInstance] result Finset.decidableEq ∅ {∅} [Meta.isDefEq] [0.000001s] ✅ Decidable (∅ = {∅}) =?= Decidable (∅ = {∅}) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000005s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000003s] ✅ PUnit =?= Unit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000027s] ✅ DecidableEq Unit =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000022s] ✅ (a b : Unit) → Decidable (a = b) =?= (a b : Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000014s] ✅ Decidable (a = b) =?= Decidable (a = b) [Meta.isDefEq] [0.000010s] ✅ a = b =?= a = b [Meta.isDefEq] [0.000000s] ✅ a =?= a [Meta.isDefEq] [0.000000s] ✅ b =?= b [Meta.isDefEq] [0.000003s] ✅ Unit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ PUnit =?= PUnit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ DecidableEq (Finset Unit) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset Unit) → Decidable (a = b) =?= (a b : Finset Unit) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Singleton (Finset Unit) (Finset (Finset Unit)) =?= Singleton (Finset Unit) (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000161s] ✅ (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst = ∅.val =?= (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst = (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst =?= (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst [Meta.isDefEq] [0.000153s] ✅ ∅.val =?= (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).fst [Meta.isDefEq] [0.000138s] ✅ ∅.1 =?= (Quot.lift (Quot.indep fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_1 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_1) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) a = Quot.indep (fun a => (fun a => Quot.recOnSubsingleton {∅}.val fun a_2 => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) a a_2) a) b) ∅.val).1 [Meta.isDefEq] [0.000064s] ✅ 0 =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000048s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000033s] ✅ Zero.zero =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000026s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000014s] ✅ Multiset.zero =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000008s] ✅ ↑[] =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r [] [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000167s] ✅ (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst = {∅}.val =?= (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst = (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst =?= (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst [Meta.isDefEq] [0.000160s] ✅ {∅}.val =?= (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).fst [Meta.isDefEq] [0.000152s] ✅ {∅}.1 =?= (Quot.lift (Quot.indep fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) (_ : ∀ (a b : List (Finset Unit)), Setoid.r a b → Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) a = Quot.indep (fun a => (fun a => (fun x x_1 => decidable_of_iff' (x ≈ x_1) (_ : Quotient.mk (List.isSetoid (Finset Unit)) x = Quotient.mk (List.isSetoid (Finset Unit)) x_1 ↔ x ≈ x_1)) [] a) a) b) {∅}.val).1 [Meta.isDefEq] [0.000077s] ✅ {∅} =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000069s] ✅ Multiset.instSingletonMultiset.1 ∅ =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000053s] ✅ ∅ ::ₘ 0 =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000046s] ✅ Quot.liftOn 0 (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000030s] ✅ Quot.lift (fun l => ↑(∅ :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (∅ :: x) = Quot.mk Setoid.r (∅ :: x_1)) 0 =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000008s] ✅ ↑[∅] =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r [∅] =?= Quot.mk Setoid.r [∅] [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000007s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq.onFailure] [0.000002s] ❌ Prop =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000140s] ✅ ?a ∈ insert ?b ?s =?= a✝ ∈ {∅, {∅}} [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59301 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?a =?= a✝ [Meta.isDefEq] ?a [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000077s] ✅ insert ?b ?s =?= {∅, {∅}} [Meta.isDefEq] [0.000005s] ✅ ?b =?= ∅ [Meta.isDefEq] ?b [assignable] =?= ∅ [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ ?s =?= {{∅}} [Meta.isDefEq] ?s [assignable] =?= {{∅}} [nonassignable] [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000040s] ✅ Finset.instInsertFinset =?= Finset.instInsertFinset [Meta.isDefEq] [0.000024s] ✅ fun a b => ?inst✝ a b =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ ?inst✝ a b =?= Finset.decidableEq a b [Meta.isDefEq] ?inst✝ a b [assignable] =?= Finset.decidableEq a b [nonassignable] [Meta.isDefEq] [0.000009s] ✅ DecidableEq (Finset (Finset Unit)) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset.instMembershipFinset =?= Finset.instMembershipFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000014s] ✅ DecidableEq (Finset (Finset Unit)) [Meta.synthInstance] result fun a b => Finset.decidableEq a b (cached) [Meta.isDefEq] [0.000001s] ✅ (a b : Finset (Finset Unit)) → Decidable (a = b) =?= (a b : Finset (Finset Unit)) → Decidable (a = b) [Meta.isDefEq] [0.000002s] ✅ fun a b => Finset.decidableEq a b =?= fun a b => Finset.decidableEq a b [Meta.isDefEq] [0.000080s] ✅ ?b ∈ {?a} =?= a✝ ∈ {{∅}} [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59316 =?= Type [Meta.isDefEq] [0.000005s] ✅ ?b =?= a✝ [Meta.isDefEq] ?b [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000023s] ✅ {?a} =?= {{∅}} [Meta.isDefEq] [0.000005s] ✅ ?a =?= {∅} [Meta.isDefEq] ?a [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset.instSingletonFinset =?= Finset.instSingletonFinset [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset.instMembershipFinset =?= Finset.instMembershipFinset [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000044s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59325 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?a =?= a✝ [Meta.isDefEq] ?a [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000012s] ❌ a✝ =?= {∅} [Meta.isDefEq] [0.000008s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000003s] ❌ a✝ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?a = ?a =?= a✝ = {∅} [Meta.isDefEq] [0.000030s] ✅ ?x = ?y =?= a✝ = {∅} [Meta.isDefEq] [0.000005s] ✅ ?α =?= Finset (Finset Unit) [Meta.isDefEq] ?α [assignable] =?= Finset (Finset Unit) [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59331 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?x =?= a✝ [Meta.isDefEq] ?x [assignable] =?= a✝ [nonassignable] [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000004s] ✅ ?y =?= {∅} [Meta.isDefEq] ?y [assignable] =?= {∅} [nonassignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.synthInstance] [0.000005s] ❌ Subsingleton (Finset (Finset Unit)) [Meta.synthInstance] result (cached) [Meta.isDefEq] [0.000053s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000004s] ✅ ?p =?= a✝ = ∅ [Meta.isDefEq] ?p [assignable] =?= a✝ = ∅ [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000033s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000030s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000000s] ✅ a✝ =?= a✝ [Meta.isDefEq] [0.000018s] ❌ ∅ =?= {∅} [Meta.isDefEq] [0.000003s] ❌ @EmptyCollection.emptyCollection =?= @singleton [Meta.isDefEq.onFailure] [0.000003s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000050s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000006s] ✅ ?p =?= a✝ = ∅ [Meta.isDefEq] ?p [assignable] =?= a✝ = ∅ [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000030s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000027s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq] [0.000000s] ✅ a✝ =?= a✝ [Meta.isDefEq] [0.000016s] ❌ ∅ =?= {∅} [Meta.isDefEq] [0.000003s] ❌ @EmptyCollection.emptyCollection =?= @singleton [Meta.isDefEq.onFailure] [0.000003s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ∅ =?= {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ a✝ = ∅ =?= a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq.onFailure] [0.000002s] ❌ ?p ∨ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000016s] ✅ ?p ↔ ?p =?= a✝ = ∅ ∨ a✝ = {∅} ↔ a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000005s] ✅ ?p =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] ?p [assignable] =?= a✝ = ∅ ∨ a✝ = {∅} [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000001s] ✅ a✝ = ∅ ∨ a✝ = {∅} =?= a✝ = ∅ ∨ a✝ = {∅} [Meta.isDefEq] [0.000015s] ✅ ?p = True =?= (a✝ ∈ Finset.powerset (Finset.powerset Finset.empty) ↔ a✝ ∈ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty))) = True [Meta.isDefEq] [0.000005s] ✅ ?p =?= a✝ ∈ Finset.powerset (Finset.powerset Finset.empty) ↔ a✝ ∈ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] ?p [assignable] =?= a✝ ∈ Finset.powerset (Finset.powerset Finset.empty) ↔ a✝ ∈ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [nonassignable] [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000000s] ✅ True =?= True [Meta.isDefEq] [0.000000s] ✅ Prop =?= Prop [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000006s] ✅ Finset Unit =?= ?m.58182 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58182 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58105 =?= Type [Meta.isDefEq] [0.000002s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000007s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000013s] ✅ Finset Unit =?= Finset ?m.58109 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.58109 [Meta.isDefEq] Unit [nonassignable] =?= ?m.58109 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58108 =?= Type [Meta.isDefEq] [0.000003s] ✅ Sort ?u.58106 =?= Type ?u.58107 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58107 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.synthInstance] [0.000102s] 💥 EmptyCollection ?m.58111 [Meta.synthInstance] [0.000054s] new goal EmptyCollection ?m.58111 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000027s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58111 [Meta.synthInstance.tryResolve] [0.000014s] 💥 EmptyCollection ?m.58111 ≟ EmptyCollection (Set ?m.58146) [Meta.isDefEq] [0.000012s] 💥 EmptyCollection ?m.58111 =?= EmptyCollection (Set ?m.58146) [Meta.isDefEq] [0.000002s] 💥 ?m.58111 =?= Set ?m.58146 [Meta.isDefEq] ?m.58111 [nonassignable] =?= Set ?m.58146 [nonassignable] [Meta.synthInstance] [0.000049s] 💥 EmptyCollection ?m.58111 [Meta.synthInstance] [0.000020s] new goal EmptyCollection ?m.58111 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000020s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58111 [Meta.synthInstance.tryResolve] [0.000010s] 💥 EmptyCollection ?m.58111 ≟ EmptyCollection (Set ?m.58181) [Meta.isDefEq] [0.000008s] 💥 EmptyCollection ?m.58111 =?= EmptyCollection (Set ?m.58181) [Meta.isDefEq] [0.000002s] 💥 ?m.58111 =?= Set ?m.58181 [Meta.isDefEq] ?m.58111 [nonassignable] =?= Set ?m.58181 [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58111 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58111 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58110 =?= Type [Meta.synthInstance] [0.000084s] ✅ EmptyCollection (Finset Unit) [Meta.synthInstance] [0.000010s] new goal EmptyCollection (Finset Unit) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000055s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset Unit) [Meta.synthInstance.tryResolve] [0.000038s] ✅ EmptyCollection (Finset Unit) ≟ EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000024s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset ?m.58185) [Meta.isDefEq] [0.000014s] ✅ Finset Unit =?= Finset ?m.58185 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.58185 [Meta.isDefEq] Unit [nonassignable] =?= ?m.58185 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58184 =?= Type [Meta.isDefEq] [0.000010s] ✅ ?m.58183 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58183 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000015s] ✅ ?m.58112 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58112 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000011s] ✅ EmptyCollection (Finset Unit) =?= EmptyCollection (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000060s] ✅ Finset.empty = ∅ =?= ?m.58193 = ?m.58193 [Meta.isDefEq] [0.000053s] ✅ Finset.empty = ∅ =?= ?m.58193 = ?m.58193 [Meta.isDefEq] [0.000007s] ✅ Finset Unit =?= ?m.58192 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58192 [assignable] [Meta.isDefEq] [0.000003s] ✅ Sort ?u.58191 =?= Type [Meta.isDefEq] [0.000006s] ✅ Finset.empty =?= ?m.58193 [Meta.isDefEq] Finset.empty [nonassignable] =?= ?m.58193 [assignable] [Meta.isDefEq] [0.000001s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000028s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000019s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000024s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000020s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000011s] ✅ Finset.empty =?= ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58277 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58277 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58199 =?= Type [Meta.isDefEq] [0.000002s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000008s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.58204 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58204 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58204 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58203 =?= Type [Meta.isDefEq] [0.000003s] ✅ Sort ?u.58200 =?= Type ?u.58201 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58201 =?= Type ?u.58202 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58202 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.synthInstance] [0.000053s] 💥 EmptyCollection ?m.58206 [Meta.synthInstance] [0.000023s] new goal EmptyCollection ?m.58206 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000020s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58206 [Meta.synthInstance.tryResolve] [0.000012s] 💥 EmptyCollection ?m.58206 ≟ EmptyCollection (Set ?m.58241) [Meta.isDefEq] [0.000010s] 💥 EmptyCollection ?m.58206 =?= EmptyCollection (Set ?m.58241) [Meta.isDefEq] [0.000001s] 💥 ?m.58206 =?= Set ?m.58241 [Meta.isDefEq] ?m.58206 [nonassignable] =?= Set ?m.58241 [nonassignable] [Meta.synthInstance] [0.000051s] 💥 EmptyCollection ?m.58206 [Meta.synthInstance] [0.000022s] new goal EmptyCollection ?m.58206 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000019s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58206 [Meta.synthInstance.tryResolve] [0.000011s] 💥 EmptyCollection ?m.58206 ≟ EmptyCollection (Set ?m.58276) [Meta.isDefEq] [0.000010s] 💥 EmptyCollection ?m.58206 =?= EmptyCollection (Set ?m.58276) [Meta.isDefEq] [0.000001s] 💥 ?m.58206 =?= Set ?m.58276 [Meta.isDefEq] ?m.58206 [nonassignable] =?= Set ?m.58276 [nonassignable] [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58206 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58206 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58205 =?= Type [Meta.synthInstance] [0.000073s] ✅ EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance] [0.000006s] new goal EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000050s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance.tryResolve] [0.000039s] ✅ EmptyCollection (Finset (Finset Unit)) ≟ EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000025s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset ?m.58280) [Meta.isDefEq] [0.000015s] ✅ Finset (Finset Unit) =?= Finset ?m.58280 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.58280 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.58280 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58279 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?m.58278 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58278 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000012s] ✅ ?m.58207 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58207 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ EmptyCollection (Finset (Finset Unit)) =?= EmptyCollection (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000047s] ✅ Finset.empty = ∅ =?= ?m.58288 = ?m.58288 [Meta.isDefEq] [0.000041s] ✅ Finset.empty = ∅ =?= ?m.58288 = ?m.58288 [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= ?m.58287 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58287 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58286 =?= Type [Meta.isDefEq] [0.000005s] ✅ Finset.empty =?= ?m.58288 [Meta.isDefEq] Finset.empty [nonassignable] =?= ?m.58288 [assignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000018s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000011s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000024s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000020s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000011s] ✅ Finset.empty =?= ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000010s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000005s] ✅ Finset (Finset (Finset Unit)) =?= ?m.58373 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.58373 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58294 =?= Type [Meta.isDefEq] [0.000002s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000014s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.58300 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58300 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58300 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58299 =?= Type [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58295 =?= Type ?u.58296 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58296 =?= Type ?u.58297 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58297 =?= Type ?u.58298 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.58298 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.synthInstance] [0.000051s] 💥 EmptyCollection ?m.58302 [Meta.synthInstance] [0.000021s] new goal EmptyCollection ?m.58302 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000022s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58302 [Meta.synthInstance.tryResolve] [0.000014s] 💥 EmptyCollection ?m.58302 ≟ EmptyCollection (Set ?m.58337) [Meta.isDefEq] [0.000012s] 💥 EmptyCollection ?m.58302 =?= EmptyCollection (Set ?m.58337) [Meta.isDefEq] [0.000001s] 💥 ?m.58302 =?= Set ?m.58337 [Meta.isDefEq] ?m.58302 [nonassignable] =?= Set ?m.58337 [nonassignable] [Meta.synthInstance] [0.000044s] 💥 EmptyCollection ?m.58302 [Meta.synthInstance] [0.000019s] new goal EmptyCollection ?m.58302 [Meta.synthInstance.instances] #[@Aesop.UnionFind.instEmptyCollectionUnionFind, Aesop.Profile.instEmptyCollectionProfile, Lean.NameMap.instEmptyCollectionNameMap, Aesop.RuleSet.instEmptyCollectionRuleSet, Lean.Widget.instEmptyCollectionInteractiveGoals, @Subarray.instEmptyCollectionSubarray, FloatArray.instEmptyCollectionFloatArray, Lean.Lsp.WorkspaceEdit.instEmptyCollectionWorkspaceEdit, Lean.NameHashSet.instEmptyCollectionNameHashSet, @Lean.instEmptyCollectionFVarIdMap, @Lean.instEmptyCollectionMVarIdMap, Lean.NameSet.instEmptyCollectionNameSet, @Finset.instEmptyCollectionFinset, Lean.Lsp.instEmptyCollectionTextEditBatch, @Lean.HashSet.instEmptyCollectionHashSet, @Lean.RBNode.instEmptyCollectionRBNode, @Multiset.instEmptyCollectionMultiset, @Lean.Syntax.instEmptyCollectionTSepArray, Lean.instEmptyCollectionRBTree, @Lean.HashMap.instEmptyCollectionHashMap, @Std.HashMap.instEmptyCollectionHashMap, Lean.instMVarIdSetEmptyCollection, @Lean.Parser.TokenMap.instEmptyCollectionTokenMap, Aesop.UnsafeQueue.instEmptyCollectionUnsafeQueue, @Lean.instEmptyCollectionNameTrie, @Array.instEmptyCollectionArray, Lean.SubExpr.Pos.instEmptyCollectionPos, Std.instEmptyCollectionRBMap, @List.instEmptyCollectionList, @Std.RBNode.instEmptyCollectionRBNode, @Aesop.Index.instEmptyCollectionIndex, @Aesop.UnorderedArraySet.instEmptyCollectionUnorderedArraySet, Std.RBSet.instEmptyCollectionRBSet, Lean.NameSSet.instEmptyCollectionNameSSet, Aesop.RuleSets.instEmptyCollectionRuleSets, Lean.instLMVarIdSetEmptyCollection, @Lean.Parser.Trie.instEmptyCollectionTrie, @Lean.AssocList.instEmptyCollectionAssocList, Lean.instEmptyCollectionRBMap, @Std.AssocList.instEmptyCollectionAssocList, @Std.Queue.instEmptyCollectionQueue, @Lean.instEmptyCollectionPrefixTree, @Lean.PersistentHashSet.instEmptyCollectionPersistentHashSet, Lean.instFVarIdSetEmptyCollection, @Std.DList.instEmptyCollectionDList, ByteArray.instEmptyCollectionByteArray, @Lean.instEmptyCollectionLMVarIdMap, @Lean.Syntax.instEmptyCollectionSepArray, Aesop.TacticState.instEmptyCollectionTacticState, Lean.instFVarIdHashSetEmptyCollection, Lean.Widget.instEmptyCollectionExprDiff, @Set.instEmptyCollectionSet] [Meta.synthInstance] [0.000016s] 💥 apply @Set.instEmptyCollectionSet to EmptyCollection ?m.58302 [Meta.synthInstance.tryResolve] [0.000009s] 💥 EmptyCollection ?m.58302 ≟ EmptyCollection (Set ?m.58372) [Meta.isDefEq] [0.000007s] 💥 EmptyCollection ?m.58302 =?= EmptyCollection (Set ?m.58372) [Meta.isDefEq] [0.000001s] 💥 ?m.58302 =?= Set ?m.58372 [Meta.isDefEq] ?m.58302 [nonassignable] =?= Set ?m.58372 [nonassignable] [Meta.isDefEq] [0.000004s] ✅ Finset (Finset (Finset Unit)) =?= ?m.58302 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.58302 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58301 =?= Type [Meta.synthInstance] [0.000084s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance] [0.000006s] new goal EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance.instances] #[@Finset.instEmptyCollectionFinset] [Meta.synthInstance] [0.000060s] ✅ apply @Finset.instEmptyCollectionFinset to EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance.tryResolve] [0.000050s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) ≟ EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000039s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset ?m.58376) [Meta.isDefEq] [0.000029s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.58376 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.58376 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.58376 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.58375 =?= Type [Meta.isDefEq] [0.000007s] ✅ ?m.58374 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58374 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.synthInstance] result Finset.instEmptyCollectionFinset [Meta.isDefEq] [0.000000s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000014s] ✅ ?m.58303 =?= Finset.instEmptyCollectionFinset [Meta.isDefEq] ?m.58303 [assignable] =?= Finset.instEmptyCollectionFinset [nonassignable] [Meta.isDefEq] [0.000009s] ✅ EmptyCollection (Finset (Finset (Finset Unit))) =?= EmptyCollection (Finset (Finset (Finset Unit))) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000050s] ✅ Finset.empty = ∅ =?= ?m.58384 = ?m.58384 [Meta.isDefEq] [0.000042s] ✅ Finset.empty = ∅ =?= ?m.58384 = ?m.58384 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset (Finset Unit)) =?= ?m.58383 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.58383 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.58382 =?= Type [Meta.isDefEq] [0.000005s] ✅ Finset.empty =?= ?m.58384 [Meta.isDefEq] Finset.empty [nonassignable] =?= ?m.58384 [assignable] [Meta.isDefEq] [0.000001s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000019s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000012s] ✅ ∅ =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000025s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000021s] ✅ Finset.empty = Finset.empty =?= Finset.empty = ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000012s] ✅ Finset.empty =?= ∅ [Meta.isDefEq] [0.000000s] ✅ Finset.empty =?= Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) mwe.lean:20:0: warning: declaration uses 'sorry' [Meta.isDefEq] [0.000008s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= ?m.59421 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.59421 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59381 =?= Type [Meta.isDefEq] [0.000009s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000013s] ✅ Finset Unit =?= Finset ?m.59388 [Meta.isDefEq] [0.000005s] ✅ Unit =?= ?m.59388 [Meta.isDefEq] Unit [nonassignable] =?= ?m.59388 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59387 =?= Type [Meta.isDefEq] [0.000014s] ✅ Finset (Finset Unit) =?= Finset ?m.59392 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.59392 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.59392 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59389 =?= Type [Meta.isDefEq] [0.000026s] ✅ Finset Unit =?= Finset ?m.59385 [Meta.isDefEq] [0.000008s] ✅ Unit =?= ?m.59385 [Meta.isDefEq] Unit [nonassignable] =?= ?m.59385 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59384 =?= Type [Meta.isDefEq] [0.000003s] ✅ Sort ?u.59382 =?= Type ?u.59383 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.59383 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000014s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59398 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.59398 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59398 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59397 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000016s] ✅ Finset (Finset Unit) =?= Finset ?m.59400 [Meta.isDefEq] [0.000012s] ✅ Finset (Finset Unit) =?= Finset ?m.59400 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.59400 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.59400 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59399 =?= Type [Meta.isDefEq] [0.000010s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000013s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59402 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset Unit) =?= ?m.59402 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59402 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59401 =?= Type [Meta.isDefEq] [0.000007s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000009s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000006s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000015s] ✅ Finset (Finset Unit) =?= Finset ?m.59404 [Meta.isDefEq] [0.000012s] ✅ Finset (Finset Unit) =?= Finset ?m.59404 [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= ?m.59404 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.59404 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59403 =?= Type [Meta.isDefEq] [0.000010s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000014s] ✅ Finset Unit =?= Finset ?m.59406 [Meta.isDefEq] [0.000011s] ✅ Finset Unit =?= Finset ?m.59406 [Meta.isDefEq] [0.000004s] ✅ Unit =?= ?m.59406 [Meta.isDefEq] Unit [nonassignable] =?= ?m.59406 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59405 =?= Type [Meta.isDefEq] [0.000009s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000005s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000013s] ✅ Finset (Finset Unit) =?= Finset ?m.59408 [Meta.isDefEq] [0.000004s] ✅ Finset Unit =?= ?m.59408 [Meta.isDefEq] Finset Unit [nonassignable] =?= ?m.59408 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59407 =?= Type [Meta.isDefEq] [0.000007s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ Sort ?u.59409 =?= Sort ?u.59409 [Meta.isDefEq] [0.000009s] ✅ ¬Finset.empty ∈ Finset.empty =?= ?m.59410 [Meta.isDefEq] ¬Finset.empty ∈ Finset.empty [nonassignable] =?= ?m.59410 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59409 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000019s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000014s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.empty =?= Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000015s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000010s] ✅ ¬Finset.empty ∈ Finset.empty =?= ¬Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000000s] ✅ Finset.empty ∈ Finset.empty =?= Finset.empty ∈ Finset.empty [Meta.isDefEq] [0.000012s] ✅ Finset (Finset (Finset Unit)) =?= Finset ?m.59414 [Meta.isDefEq] [0.000004s] ✅ Finset (Finset Unit) =?= ?m.59414 [Meta.isDefEq] Finset (Finset Unit) [nonassignable] =?= ?m.59414 [assignable] [Meta.isDefEq] [0.000001s] ✅ Type ?u.59413 =?= Type [Meta.isDefEq] [0.000008s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Sort ?u.59415 =?= Sort ?u.59415 [Meta.isDefEq] [0.000011s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ?m.59416 [Meta.isDefEq] ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [nonassignable] =?= ?m.59416 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59415 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000018s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000013s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000016s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000012s] ✅ ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty [Meta.isDefEq] [0.000000s] ✅ Sort ?u.59418 =?= Sort ?u.59418 [Meta.isDefEq] [0.000016s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ?m.59419 [Meta.isDefEq] ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [nonassignable] =?= ?m.59419 [assignable] [Meta.isDefEq] [0.000004s] ✅ Sort ?u.59418 =?= Prop [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000000s] ✅ Bool =?= Bool [Meta.isDefEq] [0.000020s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000015s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000018s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000014s] ✅ ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000001s] ✅ Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) =?= Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty) [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59393 =?= Type ?u.59394 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000000s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.59394 =?= Type ?u.59395 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.59395 =?= Type ?u.59396 [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [0.000001s] ✅ Type ?u.59396 =?= Type [Meta.isDefEq] [0.000001s] ✅ Type =?= Type [Meta.isDefEq] [2.054968s] ✅ Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= ?m.59425 = ?m.59425 [Meta.isDefEq] [0.000005s] ✅ Finset (Finset (Finset Unit)) =?= ?m.59424 [Meta.isDefEq] Finset (Finset (Finset Unit)) [nonassignable] =?= ?m.59424 [assignable] [Meta.isDefEq] [0.000001s] ✅ Sort ?u.59423 =?= Type [Meta.isDefEq] [0.000009s] ✅ Finset.powerset (Finset.powerset Finset.empty) =?= ?m.59425 [Meta.isDefEq] Finset.powerset (Finset.powerset Finset.empty) [nonassignable] =?= ?m.59425 [assignable] [Meta.isDefEq] [0.000003s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [2.054932s] ✅ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= Finset.powerset (Finset.powerset Finset.empty) [Meta.isDefEq] [2.054922s] ✅ Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) =?= Finset.powerset (Finset.powerset Finset.empty) [Meta.isDefEq] [2.054908s] ✅ { val := Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val, nodup := (_ : Multiset.Nodup (Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val)) } =?= Finset.powerset (Finset.powerset Finset.empty) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [1.025355s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.025339s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.liftOn (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) [Meta.isDefEq] [1.025314s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.025259s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= ↑[Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025254s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025249s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).1 =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025230s] ✅ Multiset.pmap Finset.mk (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025190s] ✅ Quot.recOn' (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (Multiset.powerset (Finset.powerset Finset.empty).val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025148s] ✅ Quot.rec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025102s] ✅ Eq.ndrecOn (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).snd (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000407s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000400s] ✅ Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000385s] ✅ Quot.liftOn (Finset.powerset Finset.empty).val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000369s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000109s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000101s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000094s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000086s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000062s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000054s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000042s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000175s] ✅ ↑(Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000168s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000163s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).1 [Meta.isDefEq] [0.000082s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000075s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000068s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000061s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000030s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.024623s] ✅ PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.024611s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).2 (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000089s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000079s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000071s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000064s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000042s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000037s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000032s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.024412s] ✅ ↑(List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.024407s] ✅ Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [1.024388s] ✅ List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.149535s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.073918s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } =?= Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.037100s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037084s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037077s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037062s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037041s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037025s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037018s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.037001s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036996s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036991s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036974s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036961s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036941s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036932s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000529s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000521s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000512s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000506s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.036780s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty)) [Meta.isDefEq] [0.036758s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036754s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036725s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036718s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036713s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036706s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036695s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036690s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036685s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036680s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036675s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036671s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036658s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036652s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036639s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036633s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000565s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000558s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000549s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000543s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.075575s] ✅ List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075487s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075400s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.037708s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037700s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037695s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037683s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037675s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037665s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037640s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037635s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037627s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037620s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037611s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037606s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001514s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001269s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000686s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000337s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000329s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000324s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000313s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000291s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000286s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000272s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000267s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000258s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000252s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000243s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000237s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000333s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000327s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000323s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000315s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000309s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000304s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000298s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000288s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000283s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000278s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000273s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000253s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000247s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000238s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000233s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000573s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000567s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000558s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000551s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.037676s] ✅ (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)).nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]) (List.map Multiset.ofList []) (List.pmap._sunfold.proof_2 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty))) [Meta.isDefEq] [0.037671s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037668s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037661s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037654s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037649s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037640s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037634s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037626s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037604s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037599s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037592s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037585s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037577s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037571s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001547s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001245s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000668s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000311s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000304s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000299s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000292s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000282s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000276s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000271s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000266s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000262s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000257s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000249s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000243s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000234s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000229s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000331s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000321s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000318s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000311s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000305s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000300s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000293s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000284s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000278s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000274s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000269s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000251s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000243s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000234s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000228s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000568s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000562s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000553s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000548s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000076s] ✅ List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Finset (Finset Unit)) =?= List (Finset (Finset Unit)) [Meta.isDefEq] [1.029531s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).nodup =?= Finset.cons.proof_1 Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (sorryAx ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [1.029514s] ✅ Multiset.Nodup (Finset.powerset (Finset.powerset Finset.empty)).val =?= Multiset.Nodup (Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val) [Meta.isDefEq] [1.029505s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.029498s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.liftOn (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) [Meta.isDefEq] [1.029490s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.029456s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= ↑[Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029450s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029446s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).1 =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029436s] ✅ Multiset.pmap Finset.mk (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029427s] ✅ Quot.recOn' (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (Multiset.powerset (Finset.powerset Finset.empty).val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029417s] ✅ Quot.rec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029404s] ✅ Eq.ndrecOn (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).snd (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000364s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000356s] ✅ Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000343s] ✅ Quot.liftOn (Finset.powerset Finset.empty).val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000334s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000090s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000083s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000076s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000069s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000046s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000172s] ✅ ↑(Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000166s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000161s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).1 [Meta.isDefEq] [0.000082s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000075s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000069s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000061s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000030s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.029015s] ✅ PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.029007s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).2 (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000083s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000076s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000070s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000062s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000041s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000036s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000031s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.028842s] ✅ ↑(List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.028836s] ✅ Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [1.028828s] ✅ List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.149707s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.073619s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } =?= Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.036701s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036689s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036682s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036673s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036657s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036651s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036645s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036638s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036634s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036629s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036615s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036607s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036594s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036588s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000571s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000564s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000555s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000549s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.036862s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty)) [Meta.isDefEq] [0.036833s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036828s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036819s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036813s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036807s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036801s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036790s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036785s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036780s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036775s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036770s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036765s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036756s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036750s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036741s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036736s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000573s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000564s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000554s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000548s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.076066s] ✅ List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075944s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075845s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.038199s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038191s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038185s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038177s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038169s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038158s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038132s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038127s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.038120s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038113s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.038105s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.038099s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001649s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001308s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000719s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000001s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000344s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000332s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000325s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000315s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000300s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000292s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000287s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000279s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000270s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000259s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000251s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000239s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000234s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000339s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000327s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000323s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000314s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000303s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000294s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000284s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000279s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000274s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000269s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000250s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000243s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000235s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000229s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000578s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000571s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000562s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000557s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.037608s] ✅ (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)).nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]) (List.map Multiset.ofList []) (List.pmap._sunfold.proof_2 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty))) [Meta.isDefEq] [0.037578s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037574s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037567s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037560s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037556s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037547s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037541s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037531s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037508s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037503s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037496s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037490s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037481s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037473s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001546s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001239s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000663s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000309s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000303s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000298s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000291s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000280s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000270s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000261s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000256s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000249s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000242s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000233s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000228s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000326s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000316s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000313s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000306s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000300s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000295s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000289s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000279s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000274s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000269s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000255s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000247s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000241s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000232s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000226s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000568s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000562s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000553s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000548s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000089s] ✅ List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [] [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Finset (Finset Unit)) =?= List (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [2.052382s] ✅ Finset.powerset (Finset.powerset Finset.empty) = Finset.powerset (Finset.powerset Finset.empty) =?= Finset.powerset (Finset.powerset Finset.empty) = Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [0.000000s] ✅ Finset.powerset (Finset.powerset Finset.empty) =?= Finset.powerset (Finset.powerset Finset.empty) [Meta.isDefEq] [2.052368s] ✅ Finset.powerset (Finset.powerset Finset.empty) =?= Finset.cons Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (_ : ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [2.052358s] ✅ Finset.powerset (Finset.powerset Finset.empty) =?= { val := Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val, nodup := (_ : Multiset.Nodup (Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val)) } [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit)) [Meta.isDefEq] [1.026026s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.026019s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.liftOn (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) [Meta.isDefEq] [1.026011s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.025974s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= ↑[Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025968s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025963s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).1 =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025955s] ✅ Multiset.pmap Finset.mk (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025946s] ✅ Quot.recOn' (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (Multiset.powerset (Finset.powerset Finset.empty).val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025936s] ✅ Quot.rec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025924s] ✅ Eq.ndrecOn (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).snd (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000366s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000356s] ✅ Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000347s] ✅ Quot.liftOn (Finset.powerset Finset.empty).val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000338s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000090s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000083s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000076s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000068s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000047s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000042s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000175s] ✅ ↑(Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000169s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000164s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).1 [Meta.isDefEq] [0.000084s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000076s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000069s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000062s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000034s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000029s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.025535s] ✅ PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025526s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).2 (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000082s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000075s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000069s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000061s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000035s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000030s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.025363s] ✅ ↑(List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025358s] ✅ Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [1.025349s] ✅ List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.149585s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.073951s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } =?= Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.036993s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036981s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036975s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036966s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036951s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036944s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036939s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036931s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036927s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036922s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036908s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036900s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036886s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036880s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000587s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000578s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000568s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000562s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.036905s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty)) [Meta.isDefEq] [0.036874s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036870s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036860s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036853s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036848s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036841s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036830s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036825s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036820s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036815s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036810s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036806s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036796s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036790s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036781s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036775s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000576s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000566s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000556s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000550s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.075614s] ✅ List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075490s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075393s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.037750s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037742s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037737s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037728s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037721s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037710s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037684s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037679s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037672s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037665s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037657s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037651s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001588s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001262s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000678s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000318s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000312s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000307s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000299s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000288s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000282s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000272s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000267s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000262s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000254s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000248s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000238s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000233s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000334s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000323s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000320s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000312s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000306s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000295s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000285s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000280s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000259s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000252s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000246s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000235s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000228s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000576s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000569s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000561s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000555s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.037604s] ✅ (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)).nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]) (List.map Multiset.ofList []) (List.pmap._sunfold.proof_2 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty))) [Meta.isDefEq] [0.037577s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037573s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037566s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037560s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037555s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037548s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037543s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037535s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037514s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037509s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037502s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037496s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037487s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037480s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001548s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001247s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000667s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000310s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000304s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000298s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000291s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000281s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000271s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000266s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000261s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000257s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000249s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000243s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000234s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000228s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000332s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000322s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000319s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000312s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000306s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000295s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000285s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000280s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000275s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000270s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000253s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000247s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000236s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000230s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000572s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000565s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000556s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000550s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000088s] ✅ List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [] [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Finset (Finset Unit)) =?= List (Finset (Finset Unit)) [Meta.isDefEq] [1.026318s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).nodup =?= Finset.cons.proof_1 Finset.empty (Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) (sorryAx ¬Finset.empty ∈ Finset.cons (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)) Finset.empty (sorryAx ¬Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)) [Meta.isDefEq] [1.026315s] ✅ Multiset.Nodup (Finset.powerset (Finset.powerset Finset.empty)).val =?= Multiset.Nodup (Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val) [Meta.isDefEq] [1.026305s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Finset.empty ::ₘ (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.026298s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.liftOn (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) [Meta.isDefEq] [1.026290s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset (Finset Unit))), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) (Finset.cons (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)) Finset.empty (_ : ¬Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) ∈ Finset.empty)).val [Meta.isDefEq] [1.026255s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= ↑[Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026250s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).val =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026246s] ✅ (Finset.powerset (Finset.powerset Finset.empty)).1 =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026236s] ✅ Multiset.pmap Finset.mk (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026227s] ✅ Quot.recOn' (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (Multiset.powerset (Finset.powerset Finset.empty).val) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026216s] ✅ Quot.rec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (l₁ l₂ : List (Multiset (Finset Unit))) (pp : l₁ ~ l₂), Eq.ndrec (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → Multiset.Nodup a) → Multiset (Finset (Finset Unit))) (fun H => ↑(List.pmap Finset.mk l₁ H)) (_ : Quot.mk Setoid.r l₁ = Quot.mk Setoid.r l₂) = fun H => ↑(List.pmap Finset.mk l₂ H)) (Multiset.powerset (Finset.powerset Finset.empty).val) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.026205s] ✅ Eq.ndrecOn (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (_ : (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val) (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).snd (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000358s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000350s] ✅ Multiset.powerset (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000341s] ✅ Quot.liftOn (Finset.powerset Finset.empty).val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000333s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) (Finset.powerset Finset.empty).val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000088s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000081s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000074s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000067s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000045s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000034s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000171s] ✅ ↑(Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000165s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).fst [Meta.isDefEq] [0.000160s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).1 [Meta.isDefEq] [0.000082s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000075s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000068s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000060s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000040s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000034s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000030s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) =?= Quot.mk Setoid.r (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.025824s] ✅ PSigma.snd (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025816s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset (Finset Unit))), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset (Finset Unit)), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset (Finset Unit))) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset (Finset.powerset Finset.empty).val)).2 (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000086s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst = (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000000s] ✅ (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000079s] ✅ Multiset.powerset Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000072s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000065s] ✅ Quot.lift (fun l => ↑(Multiset.powersetAux l)) (_ : ∀ (x x_1 : List Unit), Setoid.r x x_1 → Quot.mk Setoid.r (Multiset.powersetAux x) = Quot.mk Setoid.r (Multiset.powersetAux x_1)) Finset.empty.val =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000043s] ✅ ↑(Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000038s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).fst [Meta.isDefEq] [0.000033s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= (Quot.lift (Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) fun l H => ↑(List.pmap Finset.mk l H)) (_ : ∀ (a b : List (Multiset Unit)), Setoid.r a b → Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) a = Quot.indep (motive := fun x => (∀ (a : Multiset Unit), a ∈ x → (fun a => Multiset.Nodup a) a) → Multiset (Finset Unit)) (fun l H => ↑(List.pmap Finset.mk l H)) b) (Multiset.powerset Finset.empty.val)).1 [Meta.isDefEq] [0.000001s] ✅ Quot.mk Setoid.r (Multiset.powersetAux []) =?= Quot.mk Setoid.r (Multiset.powersetAux []) [Meta.isDefEq] [0.000000s] ✅ Quot Setoid.r =?= Quot Setoid.r [Meta.isDefEq] [1.025648s] ✅ ↑(List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [1.025643s] ✅ Quot.mk Setoid.r (List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t)) =?= Quot.mk Setoid.r [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.000001s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [1.025634s] ✅ List.pmap Finset.mk (Multiset.powersetAux (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) (_ : ∀ (_t : Multiset (Finset Unit)), _t ∈ Multiset.powerset (Finset.powerset Finset.empty).val → Multiset.Nodup _t) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.149751s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } :: List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.empty, Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.073520s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0]) } =?= Finset.empty [Meta.isDefEq] [0.000001s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.036783s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036771s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036765s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036756s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036740s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036734s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036729s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036722s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036718s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036713s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036697s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036689s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036676s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036670s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000587s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000577s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000567s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000561s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.036683s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty)) [Meta.isDefEq] [0.036652s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036648s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036638s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036630s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036623s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036615s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036604s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036599s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036594s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036589s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036584s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036580s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.036570s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[0] [Meta.isDefEq] [0.036564s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.036555s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.036550s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.000565s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000558s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000549s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000543s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.076205s] ✅ List.pmap Finset.mk (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]]) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]] → (fun a => Multiset.Nodup a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.076084s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } :: List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)] [Meta.isDefEq] [0.075984s] ✅ { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1], nodup := (_ : (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1]) } =?= Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.038081s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038074s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038069s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038061s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038053s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038042s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038019s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038014s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.038007s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.038001s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037992s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037987s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001590s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001268s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000682s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000320s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000313s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000300s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000289s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000283s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000278s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000272s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000263s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000255s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000248s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000239s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000234s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000336s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000325s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000322s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000314s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000303s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000297s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000287s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000282s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000270s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000265s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000261s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000253s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000247s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000238s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000233s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000576s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000570s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000561s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000556s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.037866s] ✅ (Finset.cons Finset.empty Finset.empty (sorryAx ¬Finset.empty ∈ Finset.empty)).nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]) (List.map Multiset.ofList []) (List.pmap._sunfold.proof_2 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[0]) (List.map Multiset.ofList [(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (Finset.powerset.proof_1 Finset.empty)))[1]]) (Finset.powerset.proof_1 (Finset.powerset Finset.empty))) [Meta.isDefEq] [0.037838s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= (fun a => (fun a => Multiset.Nodup a) a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037834s] ✅ Multiset.Nodup (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037827s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037821s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037816s] ✅ (Finset.cons Finset.empty Finset.empty (_ : ¬Finset.empty ∈ Finset.empty)).1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037810s] ✅ Finset.empty ::ₘ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037802s] ✅ Quot.liftOn Finset.empty.val (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037794s] ✅ Quot.lift (fun l => ↑(Finset.empty :: l)) (_ : ∀ (x x_1 : List (Finset Unit)), Setoid.r x x_1 → Quot.mk Setoid.r (Finset.empty :: x) = Quot.mk Setoid.r (Finset.empty :: x_1)) Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037772s] ✅ ↑[Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037768s] ✅ Quot.mk Setoid.r [Finset.empty] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.037760s] ✅ [Finset.empty] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))[1] [Meta.isDefEq] [0.037755s] ✅ [Finset.empty] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) 1 (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) [Meta.isDefEq] [0.037746s] ✅ [Finset.empty] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))) { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.037741s] ✅ [Finset.empty] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t))).data { val := 1, isLt := (_ : 1 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (Multiset.powersetAux []) (_ : ∀ (_t : Multiset Unit), _t ∈ Multiset.powerset Finset.empty.val → Multiset.Nodup _t)))) } [Meta.isDefEq] [0.001571s] ✅ [Finset.empty] =?= List.get (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0])) { val := 0, isLt := (_ : Nat.succ 0 ≤ List.length (List.concat [] ({ val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0]))) } [Meta.isDefEq] [0.001262s] ✅ [Finset.empty] =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } :: (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000675s] ✅ Finset.empty =?= { val := ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0], nodup := (_ : (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) } [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000315s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000308s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000302s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000295s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000284s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000279s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000274s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000269s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000264s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000260s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000251s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000245s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000236s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000229s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000332s] ✅ Finset.empty.nodup =?= List.pmap._sunfold.proof_1 (↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0]) (List.map Multiset.ofList []) (Finset.powerset.proof_1 Finset.empty) [Meta.isDefEq] [0.000322s] ✅ Multiset.Nodup Finset.empty.val =?= (fun a => Multiset.Nodup a) ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000318s] ✅ Multiset.Nodup Finset.empty.val =?= Multiset.Nodup ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000311s] ✅ Finset.empty.val =?= ↑(List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000305s] ✅ Finset.empty.val =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000298s] ✅ Finset.empty.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000292s] ✅ 0 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000282s] ✅ Zero.toOfNat0.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000277s] ✅ Zero.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000273s] ✅ Multiset.instZeroMultiset.1 =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000268s] ✅ Multiset.zero =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000263s] ✅ ↑[] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000258s] ✅ Quot.mk Setoid.r [] =?= Quot.mk Setoid.r (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000000s] ✅ Setoid.r =?= Setoid.r [Meta.isDefEq] [0.000251s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])[0] [Meta.isDefEq] [0.000244s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) [Meta.isDefEq] [0.000236s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000230s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] []).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] [])) } [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ List Unit =?= List Unit [Meta.isDefEq] [0.000000s] ✅ Unit =?= Unit [Meta.isDefEq] [0.000579s] ✅ [] =?= (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))[0] [Meta.isDefEq] [0.000571s] ✅ [] =?= instGetElemArrayNatLtInstLTNatSize.1 (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) 0 (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) [Meta.isDefEq] [0.000563s] ✅ [] =?= Array.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))) { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000555s] ✅ [] =?= List.get (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x))).data { val := 0, isLt := (_ : 0 < Array.size (List.foldr (fun a arr => Array.foldl (fun r l => Array.push (Array.push r l) (a :: l)) (Array.mkEmpty (Array.size arr * 2)) arr 0 (Array.size arr)) #[[]] (List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset Unit), x ∈ List.map Multiset.ofList [] → (fun a => Multiset.Nodup a) x)))) } [Meta.isDefEq] [0.000001s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000000s] ✅ List (Finset Unit) =?= List (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset Unit =?= Finset Unit [Meta.isDefEq] [0.000091s] ✅ List.pmap Finset.mk (List.map Multiset.ofList []) (_ : ∀ (x : Multiset (Finset Unit)), x ∈ List.map Multiset.ofList [] → (fun a => (fun a => Multiset.Nodup a) a) x) =?= [] [Meta.isDefEq] [0.000000s] ✅ [] =?= [] [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ List (Finset (Finset Unit)) =?= List (Finset (Finset Unit)) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset Unit) =?= Finset (Finset Unit) [Meta.isDefEq] [0.000000s] ✅ Finset (Finset (Finset Unit)) =?= Finset (Finset (Finset Unit))