Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!weretis.net!feeder1.news.weretis.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-announce@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'python,': 0.01; 'python.': 0.04; 'subject:Python': 0.06; 'interpreter': 0.07; 'python': 0.08; 'url:pypi': 0.08; '(it': 0.09; 'derived': 0.09; 'expressions.': 0.09; 'url:github': 0.09; 'output': 0.11; 'examples': 0.12; 'mathematics': 0.13; 'library': 0.15; '(f,': 0.16; 'ai,': 0.16; 'distutils': 0.16; 'install.': 0.16; 'released.': 0.16; 'ryan,': 0.16; 'written': 0.17; 'programming': 0.18; 'language': 0.20; 'interface': 0.23; 'subject: : ': 0.25; 'skip:[ 10': 0.26; 'url:edu': 0.28; '--------': 0.28; 'framework': 0.28; 'code,': 0.29; 'object': 0.30; 'module': 0.30; 'logic': 0.30; 'received:18': 0.30; 'received:mit.edu': 0.30; 'style.': 0.30; 'version': 0.30; 'header:Received:8': 0.32; 'downloads': 0.32; 'header:X-Complaints-To:1': 0.34; 'header:User-Agent:1': 0.34; 'quite': 0.34; 'defining': 0.35; 'exercises': 0.35; 'url:python': 0.37; 'functions.': 0.37; 'some': 0.37; 'another': 0.38; 'received:google.com': 0.38; 'received:209.85': 0.38; 'url:org': 0.38; 'user': 0.38; 'easier': 0.39; 'case': 0.39; 'header:Mime- Version:1': 0.39; 'science': 0.40; 'received:209': 0.40; 'received:prod.google.com': 0.40; 'july': 0.64; 'here': 0.66; 'scene': 0.67; 'natural': 0.67; 'to:addr:moderators.isc.org': 0.73; '2009:': 0.84; 'deduction': 0.84; 'exercise.': 0.84; 'huth': 0.84; 'subject:Logical': 0.84; 'flip': 0.91; 'available:': 0.93; 'checker': 0.93; 'compete': 0.93 Delivered-To: comp-lang-python-announce@moderators.isc.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=x-authentication-warning:to:path:from:newsgroups:subject:date :organization:lines:message-id:nntp-posting-host:mime-version :content-type:x-trace:x-complaints-to:nntp-posting-date :complaints-to:injection-info:user-agent:x-google-web-client :x-google-header-order:x-http-useragent; bh=rwIGSe65FUnHh3tN9iq9uxcCRpHus4B4RFULoTv0Crk=; b=S86Dago94pTNcHldRSNHS/8wtv//9lb5uOYbRLRkj+qB1RCMf9/YcsEKazpb0WTrUp Ob0KmnXHttee5+9i89DlbR3OYLfCeGUMyZmHTBaXHcAWGGX+nuE1wlixK3SgheuscBak nm6NZC0CgrvaBMfQKzuf/PhD1DB6+cs2gxY7I= X-Authentication-Warning: yws13.prod.google.com: news set sender to news@google.com using -f To: comp-lang-python-announce@moderators.isc.org From: Jon Jacky Newsgroups: comp.lang.python.announce Subject: FLiP-1.2 : Logical Framework in Python Date: Thu, 7 Jul 2011 20:26:59 -0700 (PDT) Organization: http://groups.google.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Complaints-To: groups-abuse@google.com Injection-Info: u42g2000yqm.googlegroups.com; posting-host=216.254.15.188; posting-account=dnCDqgoAAAAJgLBHI5tl56v7hHzgpRGJ User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HUALESNKRC X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110422 Ubuntu/10.04 (lucid) Firefox/3.6.17,gzip(gfe) X-Mailman-Approved-At: Fri, 08 Jul 2011 13:48:19 +0200 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: python-list@python.org List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Approved: python-announce-list@python.org Message-ID: Lines: 53 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1310125700 news.xs4all.nl 21821 [2001:888:2000:d::a6]:39214 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python.announce:222 FLiP-1.2, a logical framework in Python, has been released. Code, documentation, and downloads are available: http://staff.washington.edu/jon/flip/www/ http://pypi.python.org/pypi/FLiP/ https://github.com/jon-jacky/FLiP Version 1.2 is organized into packages and provides a distutils install. These may make FLiP easier to use and extend. It also includes a case study based on the "She's a witch!" scene from Monty Python and the Holy Grail. The functionality is the same as in version 1.0, as it was announced here in July 2009: -------- FLiP is a logical framework written in Python. A logical framework is a library for defining logics and writing applications such as theorem provers. One Flip application is a proof checker for entering and editing proofs in natural deduction style. Here is some output from the checker, generated from a Python proof script: [(Text('~Ax.P(x) |- Ex.~P(x)'), comment), (Not(A(x, P(x))), given), (Not(E(x, Not(P(x)))), assume), (New(x), new), (Not(P(x)), assume), (E(x, Not(P(x))), Ei, 4), (F, contra, 5,2), (Not(Not(P(x))), raa, 4,6), (P(x), ne, 7), (A(x, P(x)), Ai, 3,8), (F, contra, 9,1), (Not(Not(E(x, Not(P(x))))), raa, 2,10), (E(x, Not(P(x))), ne, 11)] The checker can use different logics; Flip comes with several. You can add another logic, or add axioms and derived rules, by writing a module in Python. Python is both the object language and the metalanguage. Formulas, inference rules, and entire proofs are Python expressions. Prover commands are Python functions. The Python interpreter itself is the only user interface to the proof checker application. (It is not necessary to know much Python to use the checker.) Flip was undertaken as a Python programming exercise. It is not intended to compete with industrial-strength theorem provers such as HOL nor with nicely-designed educational provers such as Jape. That said, the checker is quite capable of working the examples and exercises in university-level textbooks on logic for computer science or mathematics (such as those by Kaye, Huth and Ryan, or Bornat).