グラフで考える会社法の機関設計

会社法の機関を基本書でよくみる一覧表だけで理解できるとはとうてい思えない。
と思ってなにかいい方法がないのかと思っていたら、図で覚える機関設計というのを見つけた。
【渾身】図で覚える 株式会社の機関設計 (経営法務)【中小企業診断士】 – 中小企業診断士試験 一発合格道場
グラフというのはいわゆるネットワーク図のことである。

委員会のところは監査等委員会設置会社か、指名委員会等設置会社かの区別はあるが、経営層と内部監査機関のゴチャゴチャ具合がわかりやすくなったし、なにより本を読んでいて「…公開会社(ただし指名委員会等
設置会社を除く)…」みたいな記述があったときに、()内が長すぎて何をいまいちわかりにくかったのが、このグラフでどのノードを通ったグラフを構成している会社か把握できるようになったので、なんとなく読みやすくなった、気がする。
何より機関設計系の短答問題が確実に解けるようになったのでよかった。

library(igraph)
library(plotrix)
myellipse <- function(coords, v=NULL, params) {
    vertex.color <- params("vertex", "color")
    if (length(vertex.color) != 1 && !is.null(v)) {
        vertex.color <- vertex.color[v]
    }
    vertex.frame.color <- params("vertex", "frame.color")
    if (length(vertex.frame.color) != 1 && !is.null(v)) {
        vertex.frame.color <- vertex.frame.color[v]
    }
    vertex.size <- 1/1 * params("vertex", "size")
    if (length(vertex.size) != 1 && !is.null(v)) {
        vertex.size <- vertex.size[v]
    }
    vertex.size2 <- 1/1 * params("vertex", "size2")
    if (length(vertex.size2) != 1 && !is.null(v)) {
        vertex.size2 <- vertex.size2[v]
    }
    draw.ellipse(coords[,1], coords[,2], vertex.size, vertex.size2, col = vertex.color, border=vertex.frame.color)
}
add_shape("ellipse", clip=igraph.shape.noclip, plot=myellipse)


l <- rbind(
     c("株主総会", "取締役"),
     c("株主総会", "取締役会"),
     c("取締役", "監査役"),
     c("取締役会", "監査役"),
     c("取締役会", "監査役会"),
     c("取締役会", "委員会"),
     c("監査役", "会計監査人"),
     c("監査役会", "会計監査人"),
     c("委員会", "会計監査人"),
     c("取締役会", "会計参与")
     )
kikan <- c("株主", "経営層", "内部監査", "外部監査")
kikan.col <- adjustcolor(c("violet", "green", "orange", "cyan"), 0.3)
vertex.col <- c("止まれない"="cornsilk", "止まれる"="seagreen1")
g <- graph_from_edgelist(l)
lsugiyama <- t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2))
n <- norm_coords(t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2)))
rownames(lsugiyama) <- rownames(n) <- V(g)$name
V(g)$label.font <- 2
V(g)$label.color <- "black"
V(g)$shape <- "circle"
V(g)$shape[match(c("取締役", "監査役", "監査役会", "会計参与", "会計監査人"), V(g)$name)] <- "rectangle"
V(g)$shape[match(c("株主総会", "取締役会", "委員会"), V(g)$name)] <- "ellipse"
V(g)$color <- ifelse(V(g)$shape == "rectangle", vertex.col["止まれる"], vertex.col["止まれない"])
V(g)$size <- 30
V(g)$vertex.size2 <- 20
V(g)$frame.color <- "black"
V(g)$frame.color[match("取締役会", V(g)$name)] <- "red"

E(g)$color <- "black"
E(g)$arrow.size <- 2
E(g)$width <- 2
E(g)$lty <- ifelse(apply(as_edgelist(g), 1, setequal, c("取締役会", "会計参与")), 3, 1)
E(g)$color <- ifelse(apply(as_edgelist(g), 1, setequal, c("監査役", "会計監査人")), "red", "black")

par(mar=c(0, 0, 0, 0))
plot(g, layout=lsugiyama, vertex.shape="none", vertex.label=NA, edge.color=NA)
pa <- par()$usr
y <- c(sort(unique(norm_coords(lsugiyama)[,2])), 100)
for(i in seq(kikan)){
  y0 <- y[c(i, i, i+1, i+1)]-diff(y)[1]/2
  polygon(pa[c(1,2,2,1)], y0, col=kikan.col[i], border=NA)
  if(i != 1){
    legend(pa[2], y0[1], legend=kikan[i], xjust=1, yjust=0, bty="n", text.font=2)
  } else {
    legend(pa[2], y[1], legend=kikan[i], xjust=1, yjust=0.5, bty="n", text.font=2)
  }
}
legend("topright", legend=names(vertex.col), pch=c(21, 22), pt.bg=vertex.col, bty="n", cex=2.0)
plot(g, layout=lsugiyama, vertex.size=40, vertex.size2=15, add=TRUE)
text(n["会計監査人", 1], n["会計監査人", 2], "大会社", adj=c(NA, -2))
xy <- colMeans(n[c("会計監査人", "監査役"),])
text(xy[1]-0.2, xy[2], "大会社\nかつ\n公開会社\nは不可", adj=c(NA, 0))
text(n["取締役会", 1], n["取締役会", 2], "公開会社", adj=c(2, NA))
text(n["会計参与", 1], n["会計参与", 2], "任意に設置可能", adj=c(NA, -2.0))
xy <- colMeans(n[c("取締役会", "会計参与"),])
text(xy[1]-0.10, xy[2], "非大会社\nかつ\n非公開会社\nは可能", adj=c(0.5, 1.2))

基本刑事訴訟法Ⅰ・Ⅱ

読んだ。

日本評論社の基本シリーズのひとつで、基本刑法や基本憲法などとクロスリファレンスがある。
手続理解編はやたら評価が高くて中古が出回っておらず、高かったがたまたま安い中古があったので入手した。
論点編は別冊になっているので、手続のみを記載している本編はそれなりに薄い(350Pくらいあるが)ので読みやすい。
通常の基本書にありがちな、途中に論点で迷宮に迷い込まないので手続きだけ勉強しようと思ったら、それなりに読みやすいが、どのみち論点は勉強する羽目になるので別冊と行き来しないといけないのは、手間といえば手間である。
基本シリーズに共通する、灰色の網掛けの設問や、本文で太字になっている箇所は、短答で出題されている部分であるので、勉強が捗った。

論点が別冊になっている。
伝聞例外がいまだによく理解できていない。

ページ参照が1章2節、のようなシケタイの感じなので、参照しようとすると非常に読みづらい。

基礎からわかる民事訴訟法

読んだ。

フリマサイトで投げ売られていたので初版だが買った。
2版も出ているが全然値段が下がらないし、コンパクト版というのもいいのか悪いのかいまいちわからないので手を出していなかった。

とにかくゴツいが、頻出論点は図を多用して説明してあることが多い。
既判力は、実務では使わないが、理論的な部分で試験的に問われるから重要、と裏事情的なことが書かれていることが多い。既判力の項や、相殺などは非常にページが割かれている。

灘高校の現役合格率

こんなツイートを観測した。


灘(兵庫) 主要大合格者数推移 - 進学校データ名鑑

2025, 2026年でなんとなく減少傾向に見えるので全体的になんとなく減少傾向に見えている。
が、実際にどうなのか。
東大、京大、医学部、東工大(東京科学大学)、一橋大学、のしかも現役、浪人混ぜのデータのようなので、灘高現役生の合格実績がどうかデータを取ってきた。
2008-2009年の東大理Ⅲ、京大医学部の現役合格者数が抜けていたのでこちらも参照した。
2008年度 東京大学合格者数 | 受験教育情報サイト:インターエデュ・ドットコム

東工大や一橋大の現役浪人まで確認していると面倒だったので、東大、京大、医学部、の現役浪人をなんとか調べた。

stan 的に考えると、各年度y に灘高3年生がN_y 人いるとして、合格者数Y_yは、合格率\theta_y から二項分布でサンプリングされるとする。
N\sim\rm{binom}(\theta_y, N_y)
合格率\theta_y は、モデルとしては難ありだが実装が簡単なので一次線形
\theta(t)=at+b
として、aが0より有意に離れているかが経時的な合格率の増減、b が切片としてベースの合格率、となる。
モデルとして難あり、というのは、合格率は以前の年度の影響を受けるだろうが説明変数を何も考えずに年度としているからであるが、許してほしい。

理Ⅲのみ、理Ⅲと京医学部、国公立医学部(理Ⅲと京医除く)、東大と京大(理Ⅲと京医除く)、東大と京大(理Ⅲと京医除く)と国公立医学部、で分けた結果が図となる。
結果として、経時的にはどの区分も合格率は95%信用区間的には増減していない。

理Ⅲの現役合格率は概ね6%、京医も合わせると13%が現役合格している。

n <- read.table(text="
入試年 卒業数 東大合格 東大現役 理3 理3現役 京大合格 京大現役 京医合格 京医現役 医学部合計 医学部現役
2003 217 88 66 6 4 55 32 15 5 48 23
2004 214 89 56 15 8 44 22 15 9 58 28
2005 215 101 72 21 18 54 34 22 19 82 53
2006 213 80 57 13 8 51 36 25 16 70 33
2007 216 100 73 11 9 33 18 15 9 65 31
2008 216 114 82 19 14 23 12 14 8 72 35
2009 217 103 66 15 9 37 24 22 15 68 39
2010 219 103 74 21 19 35 25 23 16 93 60
2011 219 99 75 17 14 45 28 25 15 88 51
2012 219 98 81 16 14 34 25 22 15 74 40
2013 224 105 80 27 21 41 27 24 19 91 55
2014 220 104 76 12 8 30 18 16 8 64 29
2015 219 94 72 15 11 36 22 21 14 66 37
2016 218 94 72 20 17 47 26 25 13 95 42
2017 220 95 75 19 17 39 30 21 18 83 52
2018 219 92 70 15 11 42 25 22 14 97 48
2019 219 74 59 21 17 48 33 26 19 90 58
2020 220 79 57 14 11 49 31 24 15 81 48
2021 216 97 75 12 10 34 21 14 9 50 38
2022 221 92 62 10 8 48 36 20 15 86 41
2023 220 86 66 15 14 42 31 17 14 76 46
2024 218 94 71 12 12 53 38 25 14 95 35
2025 214 77 59 9 7 50 37 19 14 84 46
2026 224 95 77 7 6 47 31 13 8 44 18
", header=TRUE)

library(rstan)
library(vioplot)
library(stringr)
rstan_options(auto_write=TRUE)
options(mc.cores=parallel::detectCores())

code <- "
data {
  int N;
  int Y[N]; // 合格者数
  int D[N]; // 一学年
}
parameters{
  real a;
  real b;
  real<lower=0> s;
}
transformed parameters{
  real<lower=0, upper=1> theta[N];
  for(i in 1:N){
    theta[i] = a*i + b;
  }
}
model{
  a ~ normal(0, 5);
  b ~ normal(0, 5);
  s ~ exponential(1);
  for(i in 1:N){
    Y[i] ~ binomial(D[i], theta[i]);
  }
}
"

m0 <- stan_model(model_code=code)
standata <- list(N=nrow(n), D=n$卒業数,
                 Y=list("東大・京大・医学部"=n$東大現役 + n$京大現役 - 2*n$3現役 - 2*n$京医現役 + n$医学部現役,
                        "東大・京大"=n$東大現役 + n$京大現役 - n$3現役 - n$京医現役,
                        "理Ⅲ・京医"=n$3現役 + n$京医現役,
                        "理Ⅲ"=n$3現役,
                        "国公立医学部"=n$医学部現役)
                )

# 上記パターンを一気にやる
fits <- mapply(function(z) sampling(m0, c(standata[c(1,2)], Y=list(z)), iter=2000, warmup=1000, chain=20), standata$Y)
ex <- mapply(function(z) extract(z, pars=head(z@model_pars, -1)), fits, SIMPLIFY=FALSE)
#p <- mapply(function(z) 100/(1+exp(-z$theta)), ex, SIMPLIFY=FALSE)
p <- mapply(function(z) 100*z$theta, ex, SIMPLIFY=FALSE)
cols <- c("red", "pink", "green", "skyblue", "orange")
alpha <- c(0.025, 0.5, 0.975)
x <- 1:nrow(n)

#png("nada.png", 840, 480)
par(mar=c(4, 5, 2, 10), cex.lab=1.5)
plot(range(x), c(0, 5)*10, type="n", xlab="", ylab="", frame=FALSE, xaxt="n", yaxt="n")
abline(h=seq(0, 5, by=1)*10, lty=3)
for(i in seq(standata$Y)){
vioplot(p[[i]], add=TRUE, ylim=100*c(0, 0.5), las=1, frame.plot=FALSE,
        rectCol=NA, lineCol=NA, colMed=NA, col=cols[i],
        xlab="", ylab="")
}
for(i in seq(standata$Y)){
  if(i == 1){
    mtext("20XX年度", side=1, line=2.5, cex=1.5)
    mtext("現役合格率 [%]", side=2, line=3, cex=1.5)
  }
  y <- 100*standata$Y[[i]]/standata$D
  lines(x, y, col=cols[i], lwd=3)
  points(x, y, col=cols[i], pch=15)
  lines(x, y, lwd=1)
  pa <- par()$usr
  y1 <- tail(colMeans(p[[i]]), 1)
  pp <- quantile(ex[[i]]$a, alpha)*100
  pb <- quantile(ex[[i]]$b, alpha)*100
  txt <- sprintf("%s %.1f%s [%.1f, %.1f]\n%.2f%s/年 [%.2f, %.2f]",
                 names(standata$Y)[i], pb[2], "%", pb[1], pb[3],
                 pp[2], "%", pp[1], pp[3])
  txt <- sprintf("%.1f%s [%.1f, %.1f]\n%.2f%s/年 [%.2f, %.2f]",
                 pb[2], "%", pb[1], pb[3],
                 pp[2], "%", pp[1], pp[3])
  #text(pa[2], y1, txt, xpd=TRUE, pos=4)
  #legend(pa[2], y1, legend=txt, xpd=TRUE, col=cols[i], pch=15, yjust=0.5, bty="n")
  legend(pa[2], y1, legend=txt, title=names(standata$Y)[i], xpd=TRUE, col=cols[i], pch=15, yjust=0.5, bty="n", pt.cex=2, title.adj=c(NA, 0.5))
}
text(pa[2], pa[4], "現役合格率 (%) [CI]\n年次増減 (%/年) [CI]", xpd=TRUE, pos=4)
axis(1, at=seq(nrow(n)), labels=str_extract(n$入試年, "\\d{2,2}$"), lwd=0, lwd.ticks=1)
axis(2, lwd=0, lwd.ticks=1, las=2)
box()
dev.off()

憲法判例の射程

読んだ。

2020年発行だが妙に評価が高くて中古でもそこそこの値段だった。
前版から9章分追加された、ということで、312Pから420Pへ大増量している。400Pならなんとか通読できるが、やはり300Pのほうが持ち運びしやすいので前版でもよかったが、前版もなんだかんだ高かったので結局2版を購入した。

基本的に判旨のみが突然載っているので、有名判例の概要は知っていて当然、となる。ただし、予備校本でも普通に出てくるものばかりであるので、一通り勉強していたらたぶんなんとかなる。
本書のレビューでよく見かける「判例を論点ごとにグルーピング」というのがわかりやすく、かつ求めていたものであったのでそれはよかった。
憲法判例の射程と「判例で書く」ためのインプット - だいたい正しそうな司法試験の勉強法
だが結局射程はよく理解できていない。

ステップアップシリーズの残り

人の死の定義で心停止、呼吸停止、神経活動の停止の三兆候説が普通なのだが、脳死説も一部では主張されている、とあって普通に考えたら三兆候説なのだが、直近の法学教室が医事法関連だったので読んでみたら、脳死説を熱心に唱える学者もいるとかなんとか書いてあって虚だろ、と思った。
法学教室2026年2月号 | 有斐閣Online
脳死説を採用するなら日本では脳死判定基準があって最低6時間あけた2回の判定が必要になるので実務が回りません。判例ではないほうの説を妥当、と言っているものがいくつかある。非嫡出子が合憲の判例までの年代に出版されたからその後違憲判決になっているようだった。

ALLDOCUBE iPlay 70 mini Ultra が予想以上にゴミだった

買ったけど手放した。

本当はiPlay mini Pro を買いたかったが、2025年12月くらいからROMが突然256から128GBに容量格下げされていたので、値段が変わらないのに容量が少なくなるならいっそのことUltra を買おう、と思うにいたった。

xperia tablet compact が未だに手放させないが、PDFを読もうとおもってSideBooks を開くとメモリが足りないのかPDFファイルの一覧の読み込みに時間がかかって操作を受け付けなくなるので、なんとかしたいと思った。
しかし8インチアンドロイドタブレット界隈はもう中華タブしかないのだが、ALLDOCUBE はネット上での評判がよかったので買ってみた。
結果としてはゴミ。
メモリ12GBでSnaptragon gen7でアンツツスコアがうん十万、というがそもそも起動して2秒以内になんらかのアプリをタッチして起動させようとすると、強制終了する。
タブレット自体がおそらく2秒以上かけて完全に目覚めないと、アプリを起動できない。ほんとクソすぎる。
タッチも指がちょっとでも汗ばんでいるとスクロールしすぎて思ったとおりに操作できない。
アンドロイド14の仕様なのか、画面の左右端をスワイプすると、アプリ自体を中断してメイン画面に戻るが、アプリ内部自体の戻る操作を受け付ける端の部分と近接しすぎているのか、PDFを読んでいて前のページに戻りたいのにアプリ自体を閉じてしまう。ほんとクソすぎる。
SDカードが入るのはよいが、SDカードを入れるとカード受けから微妙に浮いていて、挿入するのに非常にコツが要る。SDカードが割れるかと思った。
電池持ちはバッテリー容量がそれなりにあるので意外に保つかと思ったが、アイドル時間は確かにもつが、PDFを読んでいると3分で2%ぐらい減る。移動や出張では充電無しでは1日は保たないと思った。

原神とかいうスマホベンチマークゲーム(?)でもないのにこの操作性の悪さなので案件もらっているインフルエンサーはマジでCOI にまみれている。それかPDF閲覧が原神を超える負荷なのか?

その他にクソだったのが、ケースとフィルムがセットになっている商品をアマゾンで買ったが、中国から発送だったので到着予定が当初2週間となっていて気長に待っていたらその期限になる日に突然到着予想が3日間延長され、その3日間を過ぎてももちろん届かなかったのでアマゾンでキャンセルをしたら商品返品をしなくても返金された。1ヶ月以上経つが未だに商品は届いていないので契約解除したが原状回復できていない。大丈夫か?