|
| 1 | +/-! |
| 2 | +# Indonesian Morphophonology |
| 3 | +@cite{sneddon-1996} |
| 4 | +
|
| 5 | +The nasal assimilation rules governing the meN- prefix allomorph |
| 6 | +selection, from @cite{sneddon-1996} §1.5. |
| 7 | +
|
| 8 | +## meN- allomorph rules |
| 9 | +
|
| 10 | +The capital N in *meN-* represents a nasal that assimilates to the |
| 11 | +first segment of the base. The nasal can surface as **m**, **n**, |
| 12 | +**ny**, **ng**, or **zero**, and in some cases the base-initial |
| 13 | +consonant is deleted: |
| 14 | +
|
| 15 | +| Base initial | Prefix | Deletion? | Example | |
| 16 | +|--------------------|---------|-----------|------------------------| |
| 17 | +| vowel, g, k, h | meng- | k deleted | *meng-ajar*, *meng-irim* | |
| 18 | +| b, p, f | mem- | p deleted | *mem-beli*, *mem-akai* | |
| 19 | +| d, t, c, j, z | men- | t deleted | *men-dengar*, *men-ulis* | |
| 20 | +| s | meny- | s deleted | *meny-ewa* | |
| 21 | +| l, r, m, n, w, y | me- | — | *me-lihat*, *me-masak* | |
| 22 | +-/ |
| 23 | + |
| 24 | +namespace Fragments.Indonesian.Morphophonology |
| 25 | + |
| 26 | +/-- The meN- allomorph prefix selected by the initial segment of the root |
| 27 | + (@cite{sneddon-1996} §1.5). The nasal N undergoes assimilation: |
| 28 | + - Before **b, p, f**: *mem-* (bilabial nasal m) |
| 29 | + - Before **d, t, c, j, z**: *men-* (alveolar nasal n) |
| 30 | + - Before **s**: *meny-* (palatal nasal ny; s deleted) |
| 31 | + - Before **l, r, m, n, w, y**: *me-* (N lost) |
| 32 | + - Elsewhere (vowels, **g, k, h**): *meng-* (velar nasal ng) -/ |
| 33 | +def meNPrefix : Char → String |
| 34 | + | 'b' | 'p' | 'f' => "mem" |
| 35 | + | 'd' | 't' | 'c' | 'j' | 'z' => "men" |
| 36 | + | 's' => "meny" |
| 37 | + | 'l' | 'r' | 'm' | 'n' | 'w' | 'y' => "me" |
| 38 | + | _ => "meng" |
| 39 | + |
| 40 | +/-- Derive the expected meN- form from a root, using the phonological |
| 41 | + rules from @cite{sneddon-1996} §1.5. The result shows the morpheme |
| 42 | + boundary (prefix-root), preserving the root-initial consonant even |
| 43 | + when it is deleted in the surface form (e.g., *mem-pecah* rather |
| 44 | + than *memecah*). -/ |
| 45 | +def deriveMeN (root : String) : Option String := |
| 46 | + match root.toList with |
| 47 | + | c :: _ => some (meNPrefix c ++ "-" ++ root) |
| 48 | + | [] => none |
| 49 | + |
| 50 | +-- ============================================================================ |
| 51 | +-- Per-class verification |
| 52 | +-- ============================================================================ |
| 53 | + |
| 54 | +/-- Vowel-initial roots get *meng-*. -/ |
| 55 | +theorem vowel_meng : meNPrefix 'a' = "meng" := rfl |
| 56 | + |
| 57 | +/-- Labial-initial roots get *mem-*. -/ |
| 58 | +theorem labial_mem : meNPrefix 'b' = "mem" ∧ meNPrefix 'p' = "mem" := ⟨rfl, rfl⟩ |
| 59 | + |
| 60 | +/-- Dental-initial roots get *men-*. -/ |
| 61 | +theorem dental_men : meNPrefix 'd' = "men" ∧ meNPrefix 't' = "men" ∧ |
| 62 | + meNPrefix 'c' = "men" ∧ meNPrefix 'j' = "men" := ⟨rfl, rfl, rfl, rfl⟩ |
| 63 | + |
| 64 | +/-- Sibilant-initial roots get *meny-*. -/ |
| 65 | +theorem sibilant_meny : meNPrefix 's' = "meny" := rfl |
| 66 | + |
| 67 | +/-- Sonorant-initial roots get *me-*. -/ |
| 68 | +theorem sonorant_me : meNPrefix 'l' = "me" ∧ meNPrefix 'r' = "me" ∧ |
| 69 | + meNPrefix 'm' = "me" := ⟨rfl, rfl, rfl⟩ |
| 70 | + |
| 71 | +/-- Velar-initial roots get *meng-*. -/ |
| 72 | +theorem velar_meng : meNPrefix 'g' = "meng" ∧ meNPrefix 'k' = "meng" ∧ |
| 73 | + meNPrefix 'h' = "meng" := ⟨rfl, rfl, rfl⟩ |
| 74 | + |
| 75 | +end Fragments.Indonesian.Morphophonology |
0 commit comments