Trong toán học, logic và khoa học máy tính, một lý thuyết hình thái hoặc một hệ hình thái là một hệ thống hình thức trong đó mọi đối tượng đều có một hình thái (hay mọi biến đều có một kiểu, mọi từ đều có một loại,...). Hình thái của một đối tượng hạn chế các tác động (hay phép toán, cách dùng) có thể được thực hiện trên đối tượng (hay biến, từ) ấy. Ngành nghiên cứu các hệ hình thái cũng được gọi là Lý thuyết Hình Thái.
Một số lý thuyết hình thái có thể đóng vai trò thay thế lý thuyết tập hợp để làm nền tảng cho toán học. Hai lý thuyết như vậy khá nổi tiếng là lý thuyết phép tính lambda hình thái của Alonzo và lý thuyết hình thái trực giác của Per Martin-Löf.
Giống như các lý thuyết tập hợp tiên đề, lý thuyết hình thái được tạo ra để tránh những nghịch lý trong các nền tảng trước đây của toán học như lý thuyết tập hợp ngây thơ, logic hình thức.
Lý thuyết hình thái có quan hệ chặt chẽ với, và đôi khi trùng lặp với, hệ thống kiểu trong khoa học máy tính.
Trong khoảng thời gian từ năm 1902 đến năm 1908, Bertrand Russell đã đề xuất nhiều "lý thuyết hình thái" khác nhau để giải quyết vấn đề mà chính ông trước đó khám phá ra: rằng phiên bản lý thuyết tập ngây thơ của Gottlob Frege bị ảnh hưởng bởi nghịch lý Russell.
Trong phần tiếp theo, từ và đối tượng mang cùng một nghĩa; loại và hình thái mang cùng một nghĩa.
Trong một hệ hình thái, mỗi từ có một loại. Ví dụ, , và là các từ phân biệt đều có loại của các số tự nhiên. Theo truyền thống, loại của từ được viết sau dấu hai chấm, chẳng hạn như nghĩa là số có loại .
Các hệ hình thái có các phép tính tường minh được thể hiện qua các luật viết lại. Các luật viết lại này được gọi là quy tắc chuyển đổi hoặc, nếu luật chỉ hoạt động theo một chiều, quy tắc rút gọn. Ví dụ, và là những từ khác nhau về mặt cú pháp, nhưng từ đầu tiên có thể được rút gọn thành từ thứ hai. Phép rút gọn này được viết là .
Các hàm trong hệ hình thái có một quy tắc rút gọn đặc biệt: một biến xuất hiện trong định nghĩa hàm sẽ được thay thế bởi đối số tương ứng. Giả sử hàm được định nghĩa là . Phép gọi hàm sẽ được rút gọn bằng cách thay thế cho mọi trong định nghĩa hàm. Như vậy ta có phép rút gọn .
Loại hàm được ký hiệu bằng một mũi tên từ loại tham số đến loại trả về của hàm. Như vậy, ta viết (tức là, là một từ, loại của nó là , tức là nó là một hàm lấy vào một từ của loại các số tự nhiên, và cho ra một từ của loại các số tự nhiên).
Có nhiều lý thuyết tập hợp khác nhau và nhiều hệ thống khác nhau của lý thuyết hình thái. Tuy nhiên, ta có thể nêu ra một số nhận xét chung.
- Lý thuyết tập hợp được xây dựng trên nền tảng logic. Nó đòi hỏi một hệ thống riêng như logic vị từ bên dưới nó. Trong lý thuyết hình thái, các khái niệm như "và" và "hoặc" có thể được mã hóa thành các hình thái. Tức là, lý thuyết hình thái có thể làm nền tảng cho logic.
- Trong lý thuyết tập hợp, một phần tử có thể là phần tử của nhiều tập hợp. Trong lý thuyết hình thái, mỗi đối tượng chỉ thuộc về một hình thái.
- Lý thuyết tập hợp thường mã hóa các số dưới dạng tập hợp. (0 là tập hợp rỗng, 1 là tập hợp chứa tập hợp rỗng, v.v.) Lý thuyết hình thái có thể mã hóa các số dưới dạng các hàm, sử dụng mã hóa Church hoặc tự nhiên hơn là các hình thái quy nạp.
- Lý thuyết hình thái có quan hệ gần với toán học xây dựng thông qua diễn giải BHK. Nó có thể được kết nối với logic bởi đẳng cấu Curry Howard. Một số lý thuyết hình thái có quan hệ chặt chẽ với lý thuyết phạm trù.
Từ được rút gọn về . Từ không thể được rút gọn hơn nữa, nó được gọi là một dạng chuẩn. Một hệ hình thái được gọi là chuẩn hóa mạnh nếu tất cả các từ đều có dạng chuẩn và bất kỳ một dãy các phép rút gọn nào đều sẽ dẫn đến dạng chuẩn. Các hệ chuẩn hóa yếu là các hệ có dạng chuẩn, tuy nhiên các phép rút gọn có thể tạo thành vòng lặp và không dẫn đến dạng chuẩn.
Đối với một hệ chuẩn hóa, một phần tử là một lớp các từ có cùng một dạng chuẩn hóa. Một từ đóng là một từ không có tham số. (Một từ như với tham số được gọi là một từ mở.) Như vậy, và là hai từ khác nhau của phần tử .
Một loại phụ thuộc là một loại mà phụ thuộc vào một từ hoặc loại khác. Ví dụ, loại trả về của một hàm có thể phụ thuộc vào đối số đưa vào hàm.
Ví dụ, một danh sách s có độ dài 4 có thể có loại khác với một danh sách s có độ dài 5.
Nhiều hệ hình thái có một loại đại diện cho sự bằng nhau của các loại và các từ. Loại này khác với quy tắc chuyển đổi, và được gọi là đẳng thức mệnh đề.
Trong lý thuyết hình thái trực giác, loại đẳng thức được gọi là . Có một loại với là một loại và , là các từ có loại . Một từ của loại là một đẳng thức " bằng ".
Trong thực tế, có thể xây dựng một loại nhưng loại đó sẽ không có từ nào cả (vì khác ). Trong lý thuyết loại trực giác, ta xây dựng các từ đẳng thức bắt đầu từ các đẳng thức đồng nhất. Nếu là một từ loại , tồn tại một từ với loại . Các đẳng thức phức tạp hơn có thể được tạo ra bằng cách tạo ra một từ đồng nhất rồi thực hiện rút gọn một bên. Ví dụ, nếu là một từ loại , ta có một đẳng thức đồng nhất , và bằng cách rút gọn, ta có một từ mới loại . Do đó, trong hệ này, loại đẳng thức thể hiện rằng hai giá trị cùng loại có thể được chuyển đổi bằng phép rút gọn.
- Phép tính lambda hình thái đơn, là một logic bậc cao;
- Lý thuyết hình thái trực giác;
- Hệ F;
- Phép tính xây dựng và các dẫn xuất
- Automath;
- Lý thuyết hình thái ST;
- Bell, John L. (2012). "Types, Sets and Categories" (PDF). In Kanamory, Akihiro (ed.). Sets and Extensions in the Twentieth Century (PDF). Handbook of the History of Logic. 6. Elsevier.
- Church, Alonzo (1940). "A formulation of the simple theory of types". The Journal of Symbolic Logic. 5 (2): 56–68. JSTOR 2266170.
- Farmer, William M. (2008). "The seven virtues of simple type theory". Journal of Applied Logic. 6 (3): 267–286.
- Aarts, C.; Backhouse, R.; Hoogendijk, P.; Voermans, E.; van der Woude, J. (December 1992). "A Relational Theory of Datatypes". Technische Universiteit Eindhoven.
- Andrews B., Peter (2002). An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof (2nd ed.). Kluwer. ISBN 978-1-4020-0763-7.
- Covers type theory in depth, including polymorphic and dependent type extensions. Gives categorical semantics.
- Cardelli, Luca (1996). "Type Systems". In Tucker, Allen B. (ed.). The Computer Science and Engineering Handbook. CRC Press. pp. 2208–36. ISBN 9780849329098..
- Constable, Robert L. (2012) [2002]. "Naïve Computational Type Theory" (PDF Lưu trữ 2012-02-27 tại Wayback Machine). In Schwichtenberg, H.; Steinbruggen, R. (eds.). Proof and System-Reliability. Nato Science Series II. 62. Springer. pp. 213–259. ISBN 9789401004138.
- Coquand, Thierry (2018) [2006]. "Type Theory". Stanford Encyclopedia of Philosophy.
- Thompson, Simon (1991). Type Theory and Functional Programming. Addison–Wesley.
- Hindley, J. Roger (2008) [1995]. Basic Simple Type Theory. Cambridge University Press.
- Kamareddine, Fairouz D.; Laan, Twan; Nederpelt, Rob P. (2004). A modern perspective on type theory: from its origins until today. Springer.
- Ferreirós, José; Domínguez, José Ferreirós (2007). "X. Logic and Type Theory in the Interwar Period". Labyrinth of thought: a history of set theory and its role in modern mathematics (2nd ed.). Springer.
- Laan, T.D.L. (1997). The evolution of type theory in logic and mathematics (PDF) (PhD). Eindhoven University of Technology.