Carnap Hakkında

“Soyut dilsel biçimlerin kabulü ya da reddi, tıpkı herhangi bir bilim dalındaki diğer herhangi bir dil biçiminin kabulü ya da reddi gibi, nihai olarak, elde edilen sonucun gereken çabanın miktarı ve karmaşıklığına oranı yani araç olarak verimlilik tarafından kararlaştırılır. Pratik kullanımdaki başarılarını veya başarısızlıklarını test etmek yerine, belirli dil biçimlerine dogmatik yasaklar koymak, yararsızdan daha kötüdür; kesinlikle zararlıdır çünkü bilimsel ilerlemeyi engelleyebilir.

... Herhangi bir araştırma alanında çalışanlara yararlı buldukları herhangi bir ifade biçimini kullanma özgürlüğü tanıyacağız; sahada çalışmak hiçbir yararlı işlevi olmayan biçimlerin er ya da geç ortadan kaldırılmasına yol açar. Dikkatli olmak istiyoruz: iddialarda bulunurken ve onları incelerken eleştirel ama dilsel biçimleri kabul ederken hoşgörülü olmak istiyoruz.”

Rudolf Carnap, "Görgücülük, Anlambilim ve Varlıkbilim," Anlam ve Zorunluluk, 1956, 2. baskı.

Carnap, formel diller, mantık ve anlambilim oluşturmak ve keşfetmek için ücretsiz ve açık kaynaklı bir Haskell yapısıdır. Dilleri hızlı ve kolay bir şekilde tanımlamanıza, bu diller için mantıklar oluşturmanıza ve anlamlarını belirlemenize olanak tanır. Ardından Carnap, yarattığınız mantığı kullanarak çeşitli formel dizgelerde kanıtları nasıl denetleyeceğinizi, bileşik ifadelerin anlamlarını nasıl bulacağınızı ve çok daha fazlasını bulmak üzere kendi tanımladığınız yönergeleri kullanır.

Carnap Ne İşe Yarar?

Carnap'ı eğitimcilerin, öğrencilerin ve mantık üzerine çalışan araştırmacıların kullanması amaçlanmaktadır. Carnap, eğitimcilerin etkileşimli alıştırmalar ve öğretim materyalleri oluşturmasını ve öğrencilerin neyin ne olduğunu belirlemek için anlamsal ve sözdizimsel yöntemleri öğrenirken hızlı ve yararlı geri bildirim almalarını mümkün kılar. Carnap, ayrıca alışılmışın dışında biçimsel dizgelerle ilgilenen araştırmacıların bilgisayar destekli mantıksal araştırma için kanıt denetimi ve anlamsal araçları hızla prototip haline getirmelerini sağlar.

Carnap'ı şu anda nasıl kullanabilirim?

Carnap'ı kendi sınıfınızda mantık öğretmek için kullanabilirsiniz!

Tek yapmanız gereken bir hesap oluşturmak ve ardından eğitmen olarak kaydolmak için iletişime geçmek.

Eğitimci olduğunuzda, dersinizi yürütmek ve ödevlere otomatik olarak not vermek için şu anda bulunduğunuz carnap.io adlı bu siteyi kullanabilirsiniz.Burada barındırılan ücretsiz ders kitabından problemleri öğrencilerinize verebilir veya kendi ders kitabınızı kullanabilir ve kendi tercih ettiğiniz dizge için otomatik olarak puanlanmış problem setleri oluşturabilirsiniz. Carnap şu anda doğruluk tablolarının, çevirinin ve ayrıştırma alıştırmalarının yanı sıra Kalish ve Montague'nün Logic Bergmann ve Moore'un Logic Book Hardegree'nin Modal Logic P.D. Magnus'un Forall x ve Forall x'in Calgary Remix'i adlı yapıtlarındaki biçimsel dizgelerle uyumlu türetimleri desteklemektedir. . Ancak, projenin tutkusu azami ölçüde kapsayıcı olmaktır. Bu nedenle, favori dizgeniz desteklenmiyorsa bize bildirin, onu da eklemeye çalışalım.

Olası eğitimciler için yardımcı belgeler burada bulunabilir.

Neden “Carnap”?

Carnap, adını yukarıda alıntılanan filozof Rudolf Carnap'tan almıştır.

Carnap (filozof) mantığa hoşgörülü ve deneysel bir yaklaşımın savunucusuydu. Carnap (program) tasarımı gereği çoğulcudur. Çıkarım kuralları bildirimsel olarak belirtilir ve belirli bir dil için zaten sağlananlara yeni mantıklar eklemeyi kolaylaştırır. Çıkarımların doğru olup olmadığını denetlemeye yönelik algoritmaların çok çeşitli dillere uygulanabilir olması yeni dillerin tanıtılmasını kolaylaştırır.

Carnap'ın (filozof) mantıksal tipler ve onları görmezden gelmenin sizi pek iyi çalışmayan inançlarla nasıl baş başa bırakabileceği hakkında da söyleyecek çok şeyi vardı. Carnap (program), kodun doğruluğunu sağlamak için bir mantıksal tipler teorisi kullanan, duruk yazımlı arı işlevsel bir programlama dili olan Haskell'de yazılmıştır.

Kim Carnap'ı Kullanır?

Carnap ilkin Kansas Eyalet Üniversitesi'nde geliştirilmişti, ancak artık dünya çapında düzinelerce kolej ve üniversitede kullanılıyor. İşte (tamamlanmamış) bir liste:

  • Arizona State University
  • Bard College at Simon's Rock
  • Boise State
  • Brigham Young University
  • California State University, Chico
  • California State University, Northridge
  • Institute of Philosophy, University of Zielona Gora, Poland
  • Kansas State University
  • McGill University
  • Mississippi State University
  • Northwestern University
  • Old Dominion University
  • Pacific University
  • Pepperdine University
  • Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio), Brazil
  • Tarleton State University
  • The American University in Cairo
  • The University of Alabama at Birmingham
  • University at Albany, State University of New York
  • University of Calgary
  • University of California, Davis
  • University of California, San Diego
  • University of California, Santa Cruz
  • University of Cincinnati
  • University of Illinois at Chicago
  • University of Illinois, Urbana Champaign
  • University of Michigan, Ann Arbor
  • University of Puget Sound
  • University of Victoria
  • University of Wisconsin, Madison

Carnap Nasıl Çalışır?

İşin aslı, bu bir parça teknik bir konu. İşin içinde birkaç farklı el becerisi var.

Esasen Haskell'in yazım dizgesi, farklı sözlük kategorilerini veri türleri olarak temsil etmeyi, ( bu yazıdaanlatılan yönteme benzer bir şey kullanarak) bu sözlüksel kategori veri tiplerini bir sözlüğü temsil eden daha büyük bir veri tipinde birleştirmeyi ve bir sözlüğün farklı öğelerinin dilbilgisel bir şekilde birbirine uygulanmasının sonucu olarak bir dili tanımlamayı olanaklı kılar.

Sonuç olarak, Carnap'ı kullanarak, önceden tanımlanmış sözcük kategorilerini bir araya getirmenin sonucu olarak bir dil tanımlayabilirsiniz. Haskell'in yazım öbekleri sayesinde, dilleriniz, kurucu sözlük kategorilerinin kendileriyle birlikte taşıdığı çeşitli yararlı özellikleri miras alacaktır (örneğin, Boolecu eklemler için sözcük kategorisi içeren diller, "ve" simgesinin nasıl ayrıştırılacağını ve görüntüleneceğini veya bağlaçlarının anlamsal değerlerinden bir tümel evetlemenin anlamsal değerinin nasıl hesaplanacağını otomatik olarak bilir). Ayrıca Haskell'in duruk yazımı ve sözcük kategorilerini tipler olarak temsil etme becerisi nedeniyle, programı derlemeye çalıştığınızda dilbilgisine aykırı bir ifadeyle sonuçlanabilecek herhangi bir programlama hatasının algılanacağı garanti edilir.

Geniş bir dil öbeğini (sözcük kategorilerini bir araya getirmenin sonucunda) tek tip olarak temsil ederek, aynı zamanda onları tek tip olarak manipüle edebiliyoruz. Özellikle, değişken değiştirimi, anlamsal değerlendirme, β-normalleştirme, yüksek dereceli birleştirme gibi şeyler için tamamen genel algoritmalar kullanabiliriz… sözgelimi, yalnızca kabul edilebilir çıkarım kuralları bildirimini kullanarak kanıtların doğruluğunu denetlemek gibi gereksinim duyduğunuz tüm iyi şeyler. Sonuç olarak bu algoritmalar için sadece bir kez kod yazmamız yeterli; daha sonra bu kodu Carnap çerçevesinde tanımlanabilecek herhangi bir dilde otomatik olarak kullanabiliriz.

Yani işin özü bu. Ayrıntılar hakkında daha fazla bilgi edinmek isterseniz kodu inceleyebilir, bir geliştiriciyle konuşabilir veya bu makaleyegöz atabilirsiniz..

Nasıl Katılabilirim?

Carnap'ı desteklemek istiyorsanız, lütfen bizi Github'da yıldızlamayı unutmayınız. . Önerileriniz, özellik istekleriniz veya hata raporlarınız varsa Github'da sorun oluşturabilirsiniz. Genel sorular veya tartışmalar için bize, Matrix 'ten, IRC'ye köprülü ircs://irc.libera.chat:6697/carnap adresinden veya e-postaüzerinden de ulaşabilirsiniz. .

Projeye kod katkısı vermek isterseniz (yeni bir birleştirme algoritmasından, bir CSS ince ayarına veya pandoc şablonuna kadar herhangi bir şey) Github'da bir çekme isteğine koymanız yeterlidir!