NB. de Morgan law NB. * and_logis R0 NB. * or_logis R0 NB. nequal_logis R0 NB. not_logis R0 NB. -------------------------- or_logis0=: 3 : 0 NB. calc OR 'A0 B0'=. y A0 +. B0 ) and_logis0=: 3 : 0 NB. calc AND 'A0 B0'=. y A0 *. B0 ) not_logis0=: 3 : 0 NB. calc Not equal 'A0' =.; y -. ; y ) NB. ----------------------- and_logis=: 3 : 0 NB. calc AND 'A0 B0'=. y (trans_tf_sub y),.trans_tf_sub A0 *. B0 ) or_logis=: 3 : 0 NB. calc OR 'A0 B0'=. y (trans_tf_sub y),.trans_tf_sub A0 +. B0 ) nequal_logis=:3 : 0 NB. calc Not equal/XOR 'A0 B0'=. y (trans_tf_sub y),.trans_tf_sub -. A0=B0 ) not_logis=: 3 : 0 NB. calc Not equal 'A0' =.; y (trans_tf_sub y),.trans_tf_sub -. ; y ) NB. ---------------------------- trans_tf0=: 1 : '(trans_tf_sub y),.trans_tf_sub u y' NB. and_logis0 trans_tf0 R0 NB. not_logis0&(0&{) trans_tf0&(0&{) R0 trans_tf_sub=: 3 : 0 NB. u R0/sub only trans |:> (-. L:0 y){ L:0 'TF' ) reverse_tf_sub=: 3 : 0 NB. reverse_tf_sub or_logis R0 y e./ 'T' ) NB. ------condition------ cond_pq0=: 3 : ' or_logis0 (<-.;{.y),{: y' cond_pq=: 3 : ' or_logis (<-.;{.y),{: y' NB. u R0 NB. p -> q is (~p) v q NB. condw_pq0=: 3 : 0 NB. condw_pq R0 NB. TMP=. tmp,-. tmp=. ;("1),. y NB. ((2&{ +. 1&{) *. 3&{ +. 0&{) TMP NB. (trans_tf_sub y),. trans_tf_sub TMP2 NB.) condw_pq0=: 3 : 0 TMP=. y,-.&.> y NB. close<-calc<-open and_logis0 (or_logis0 2 1{ TMP);or_logis0 3 0{TMP ) condw_pq=: 3 : '(trans_tf_sub y),. trans_tf_sub&condw_pq0 y' pick_pq_not=: 4 : 'x { y,-.&.> y' NB. 0 1/ 2 3 or 0 1 2/3 4 5 is real/reverse NB. 2 // p,q,~p,~q is 0 1 2 3 NB. 2 1 u y is ~p,q NB. --------------------- R0=: 1 1 0 0 ; 1 0 1 0 R3=: {@|:@|. 2 2 2 #: i.8 S0=:'今日は雨が降る' S1=:'今日は蒸し暑い'