From 113aab0fcb5e85674c8e7817ae356ca41432c698 Mon Sep 17 00:00:00 2001 From: hi Date: Tue, 12 Aug 2025 07:54:03 +0000 Subject: [PATCH] really rename it MIU system --- Logic/Language/Impl/MIU.hs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Logic/Language/Impl/MIU.hs b/Logic/Language/Impl/MIU.hs index 9b52411..24a4093 100644 --- a/Logic/Language/Impl/MIU.hs +++ b/Logic/Language/Impl/MIU.hs @@ -19,41 +19,41 @@ instance Language AlphaMIU where axiom0 = [[M, I]] infer1 = - [ mRule1 - , mRule2 - , mRule3 - , mRule4 + [ miuRule1 + , miuRule2 + , miuRule3 + , miuRule4 ] -- RULE I: If you possess a string whose last letter is I, you can add on a U at the end. -mRule1 :: StringMIU -> [StringMIU] -mRule1 [I] = [[I, U]] -mRule1 (x:xs) = (x:) <$> mRule1 xs -mRule1 _ = [] +miuRule1 :: StringMIU -> [StringMIU] +miuRule1 [I] = [[I, U]] +miuRule1 (x:xs) = (x:) <$> miuRule1 xs +miuRule1 _ = [] -- RULE II: Suppose you have Mx. Then you may add Mxx to your collection. -mRule2 :: StringMIU -> [StringMIU] -mRule2 string@(M:xs) = [string ++ xs] -mRule2 _ = [] +miuRule2 :: StringMIU -> [StringMIU] +miuRule2 string@(M:xs) = [string ++ xs] +miuRule2 _ = [] -- RULE III: If III occurs in one of the strings in your collection, you may -- make a new string with U in place of III. -mRule3 :: StringMIU -> [StringMIU] -mRule3 string@(M:xs) = (M:) <$> aux xs +miuRule3 :: StringMIU -> [StringMIU] +miuRule3 string@(M:xs) = (M:) <$> aux xs where aux (x@I:xs@(I:I:xs')) = (U:xs'):((x:) <$> aux xs) aux (x:xs) = (x:) <$> aux xs aux _ = [] -mRule3 _ = [] +miuRule3 _ = [] -- RULE IV: If UU occurs inside one of your strings, you can drop it. -mRule4 :: StringMIU -> [StringMIU] -mRule4 string@(M:xs) = (M:) <$> aux xs +miuRule4 :: StringMIU -> [StringMIU] +miuRule4 string@(M:xs) = (M:) <$> aux xs where aux (x@U:xs@(U:xs')) = xs':((x:) <$> aux xs) aux (x:xs) = (x:) <$> aux xs aux _ = [] -mRule4 _ = [] +miuRule4 _ = [] {- ghci> map ConcatShowList infer0 :: [ConcatShowList AlphaMIU]