Tôi có lý thuyết đánh máy sau đây
|- 1_X : X -> X
f : A -> B, g : B -> C |- compose(g,f) : A -> C
F, f : A -> B |- apply(F,f) : F(A) -> F(B)
với các phương trình cho tất cả các điều khoản:
f : A -> B, g : B -> C, h : C -> D |- compose(h,compose(f,g)) = compose(compose(h,f),g)
f : A -> B |- compose(f,1_A) = f
f : A -> B |- compose(1_B,f) = f
F |- apply(F,1_X) = 1_F(X)
f, f : A -> B, g : B -> C |- apply(F,compose(g,f)) = compose(apply(F,g),apply(F,f))
Tôi đang tìm kiếm một thủ tục bán quyết định sẽ có thể chứng minh các phương trình trong lý thuyết này với một tập hợp các phương trình giả thuyết. Cũng không rõ liệu một thủ tục quyết định hoàn chỉnh có tồn tại hay không: Dường như không có cách nào để mã hóa vấn đề từ ngữ cho các nhóm vào đó. Neel Krishnaswami đã chỉ ra cách mã hóa vấn đề từ ngữ sang vấn đề này, vì vậy vấn đề chung là không thể giải quyết được. Lý thuyết kết hợp và nhận dạng có thể dễ dàng được quyết định bằng cách sử dụng mô hình đơn hình của lý thuyết, trong khi vấn đề đầy đủ khó hơn đóng cửa đồng quy. Bất kỳ tài liệu tham khảo hoặc con trỏ sẽ được chào đón nhất!
Dưới đây là một ví dụ rõ ràng về một cái gì đó chúng tôi hy vọng có thể tự động chứng minh:
f : X -> Y, F, G,
a : F(X) -> G(X), b : G(X) -> F(X),
c : F(Y) -> G(Y), d : G(Y) -> F(Y),
compose(a,b) = 1_F(X), compose(b,a) = 1_G(X),
compose(c,d) = 1_F(Y), compose(d,c) = 1_G(Y),
compose(c,apply(F,f)) = compose(apply(G,f),a)
|- compose(d,apply(G,f)) = compose(apply(F,f),b)