Trước khi nhấn vào các câu hỏi thực tế, một nhận xét về công việc của bạn cho đến nay: hủy bỏ bên trái trong 2.a. nói chung là không chính xác, cặp quan trọng sẽ chỉ là . Do đó, bạn không nhận được cặp quan trọng 2.b. Vấn đề với sự hủy bỏ này là phương trình bạn nhận được nói chung không tuân theo các tiên đề bạn đã bắt đầu từ đó; ví dụ: nếu bạn đang làm việc với ngôn ngữ của các vòng, đôi khi bạn có thể rút ra cặp quan trọng , nhưng sẽ không chính xác khi suy ra (điều đó có nghĩa là bạn chỉ có một mô hình tầm thường). Không có quy trình viết lại âm thanh, bao gồm cả Huet, nên cho phép giảm này.x∘(e∘z)≈x∘z0∗x≈0∗yx≈y
Mặt khác, bạn đang thiếu các cặp quan trọng mà bạn nhận được bằng cách thống nhất (phiên bản được đổi tên của) hoặc với tất cả (tức là sử dụng thứ hai ). Các cặp quan trọng kết quả làx∘ex∘i(x)(x∘y)∘z∘
- x∘(y∘e)←(x∘y)∘e→x∘y , sau khi giảm sẽ trở thành phương trình tầm thường vàx∘y≈x∘y
- x∘(y∘i(x∘y))←(x∘y)∘i(x∘y)→e , không thể giảm thêm nữa và đưa ra quy tắc (giả sử rằng trong quyền ưu tiên được sử dụng để xác định LPO, giống như bạn đã làm khi định hướng ).x∘(y∘i(x∘y))→e∘▹e▹x∘i(x)≈e
Đối với thủ tục hoàn thành cơ bản:
- Bất cứ khi nào bạn tạo một cặp quan trọng, bạn giảm cả hai bên càng nhiều càng tốt bằng cách sử dụng bộ quy tắc hiện tại. Nếu các hình thức bình thường kết quả không bằng nhau, bạn tạo một quy tắc mới. Ví dụ: 2.c. đưa ra quy tắc mới . Mặt khác, hợp nhất với sẽ cho cặp quan trọng , có thể rút gọn thành và bị loại bỏ.x∘(i(x)∘z)→e∘z(x∘y)∘zx1∘y1(x∘y)∘(z∘z1)←((x∘y)∘z)∘z1→(x∘(y∘z))∘z1x∘(y∘(z∘z1))≈x∘(y∘(z∘z1))
- Bất cứ khi nào bạn tạo quy tắc mới , bạn phải xem xét tất cả các cặp quan trọng giữa quy tắc đó và quy tắc hiện tại , kiểm tra tính không thể thay đổi của với mỗi tập hợp con không biến của và ngược lại. Ngoài ra, hãy nhớ kiểm tra sự tự trùng lặp, tức là không thể xác định được với các tập hợp con của chính nó, như chúng ta đã làm ở trên về tính kết hợp. Bạn chỉ dừng lại khi tất cả các cặp quan trọng của các quy tắc hiện có đã được kiểm tra và tạo ra các quy tắc mới hoặc bị loại bỏ.l→rl1→r1,…,ln→rnllil
Thủ tục này có thể được cải thiện một chút. Cụ thể, bạn có thể sử dụng các quy tắc mới để đơn giản hóa các quy tắc cũ (và có thể loại bỏ chúng nếu chúng trở nên tầm thường, nghĩa là chúng bị thay thế bởi quy tắc mới) và một phương pháp phỏng đoán tốt để chọn cặp quan trọng tiếp theo để kiểm tra có thể cắt giảm đáng kể số lượng quy tắc.